KILLED proof of input_MO2TrUirzJ.trs # AProVE Commit ID: aff8ecad908e01718a4c36e68d2e55d5e0f16e15 fuhs 20220216 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), 7 ms] (12) typed CpxTrs (13) OrderProof [LOWER BOUND(ID), 0 ms] (14) typed CpxTrs (15) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] (16) TRS for Loop Detection (17) RelTrsToWeightedTrsProof [UPPER BOUND(ID), 0 ms] (18) CpxWeightedTrs (19) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (20) CpxTypedWeightedTrs (21) CompletionProof [UPPER BOUND(ID), 0 ms] (22) CpxTypedWeightedCompleteTrs (23) NarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (24) CpxTypedWeightedCompleteTrs (25) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 7 ms] (26) CpxRNTS (27) InliningProof [UPPER BOUND(ID), 239 ms] (28) CpxRNTS (29) SimplificationProof [BOTH BOUNDS(ID, ID), 0 ms] (30) CpxRNTS (31) CompletionProof [UPPER BOUND(ID), 0 ms] (32) CpxTypedWeightedCompleteTrs (33) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (34) CpxRNTS (35) CpxTrsToCdtProof [UPPER BOUND(ID), 0 ms] (36) CdtProblem (37) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (38) CdtProblem (39) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (40) CdtProblem (41) CdtToCpxRelTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (42) CpxRelTRS (43) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] (44) CpxTRS (45) RelTrsToWeightedTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (46) CpxWeightedTrs (47) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (48) CpxTypedWeightedTrs (49) CompletionProof [UPPER BOUND(ID), 0 ms] (50) CpxTypedWeightedCompleteTrs (51) NarrowingProof [BOTH BOUNDS(ID, ID), 240 ms] (52) CpxTypedWeightedCompleteTrs (53) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (54) CpxRNTS (55) InliningProof [UPPER BOUND(ID), 351 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), 16 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), 21 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) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (84) CdtProblem (85) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (86) CdtProblem (87) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (88) CdtProblem (89) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (90) CdtProblem (91) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 19 ms] (92) CdtProblem (93) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (94) CdtProblem (95) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (96) CdtProblem (97) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 14 ms] (98) CdtProblem (99) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (100) CdtProblem (101) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (102) CdtProblem (103) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 31 ms] (104) CdtProblem (105) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (106) CdtProblem (107) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (108) CdtProblem (109) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 35 ms] (110) CdtProblem (111) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (112) CdtProblem (113) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (114) CdtProblem (115) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 108 ms] (116) CdtProblem (117) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (118) CdtProblem (119) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (120) CdtProblem (121) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 19 ms] (122) CdtProblem (123) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 57 ms] (124) CdtProblem (125) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (126) CdtProblem (127) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 49 ms] (128) CdtProblem (129) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (130) CdtProblem (131) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 14 ms] (132) CdtProblem (133) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (134) CdtProblem (135) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 153 ms] (136) CdtProblem (137) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (138) CdtProblem (139) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (140) CdtProblem (141) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (142) CdtProblem (143) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 58 ms] (144) CdtProblem (145) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (146) CdtProblem (147) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 83 ms] (148) CdtProblem (149) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (150) CdtProblem (151) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 32 ms] (152) CdtProblem (153) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 17 ms] (154) CdtProblem (155) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 196 ms] (156) CdtProblem (157) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (158) CdtProblem (159) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 10 ms] (160) CdtProblem (161) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 154 ms] (162) CdtProblem (163) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (164) CdtProblem (165) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (166) CdtProblem (167) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 198 ms] (168) CdtProblem (169) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 18 ms] (170) CdtProblem (171) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 38 ms] (172) CdtProblem (173) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 171 ms] (174) CdtProblem (175) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (176) CdtProblem (177) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (178) CdtProblem (179) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 66 ms] (180) CdtProblem (181) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 26 ms] (182) CdtProblem (183) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 280 ms] (184) CdtProblem (185) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (186) CdtProblem (187) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (188) CdtProblem (189) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 197 ms] (190) CdtProblem (191) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 47 ms] (192) CdtProblem (193) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 20 ms] (194) CdtProblem (195) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 368 ms] (196) CdtProblem (197) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 44 ms] (198) CdtProblem (199) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 79 ms] (200) CdtProblem (201) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 232 ms] (202) CdtProblem (203) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 66 ms] (204) CdtProblem (205) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 11 ms] (206) CdtProblem (207) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 154 ms] (208) CdtProblem (209) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (210) CdtProblem (211) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 71 ms] (212) CdtProblem (213) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 105 ms] (214) CdtProblem (215) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 18 ms] (216) CdtProblem (217) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 64 ms] (218) CdtProblem (219) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 178 ms] (220) CdtProblem (221) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 55 ms] (222) CdtProblem (223) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 25 ms] (224) CdtProblem (225) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 189 ms] (226) CdtProblem (227) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 6 ms] (228) CdtProblem (229) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 27 ms] (230) CdtProblem (231) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 289 ms] (232) CdtProblem (233) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (234) CdtProblem (235) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 215 ms] (236) CdtProblem (237) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 60 ms] (238) CdtProblem (239) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 243 ms] (240) CdtProblem (241) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 55 ms] (242) CdtProblem (243) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 188 ms] (244) CdtProblem (245) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 22 ms] (246) CdtProblem (247) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 329 ms] (248) CdtProblem (249) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 74 ms] (250) CdtProblem (251) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 149 ms] (252) CdtProblem (253) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 79 ms] (254) CdtProblem (255) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 339 ms] (256) CdtProblem (257) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 78 ms] (258) CdtProblem (259) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 232 ms] (260) CdtProblem (261) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 75 ms] (262) CdtProblem (263) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 187 ms] (264) CdtProblem (265) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 51 ms] (266) CdtProblem (267) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 447 ms] (268) CdtProblem (269) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 69 ms] (270) 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__fst(0, Z) -> nil a__fst(s(X), cons(Y, Z)) -> cons(mark(Y), fst(X, Z)) a__from(X) -> cons(mark(X), from(s(X))) a__add(0, X) -> mark(X) a__add(s(X), Y) -> s(add(X, Y)) a__len(nil) -> 0 a__len(cons(X, Z)) -> s(len(Z)) mark(fst(X1, X2)) -> a__fst(mark(X1), mark(X2)) mark(from(X)) -> a__from(mark(X)) mark(add(X1, X2)) -> a__add(mark(X1), mark(X2)) mark(len(X)) -> a__len(mark(X)) mark(0) -> 0 mark(s(X)) -> s(X) mark(nil) -> nil mark(cons(X1, X2)) -> cons(mark(X1), X2) a__fst(X1, X2) -> fst(X1, X2) a__from(X) -> from(X) a__add(X1, X2) -> add(X1, X2) a__len(X) -> len(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__fst(0', Z) -> nil a__fst(s(X), cons(Y, Z)) -> cons(mark(Y), fst(X, Z)) a__from(X) -> cons(mark(X), from(s(X))) a__add(0', X) -> mark(X) a__add(s(X), Y) -> s(add(X, Y)) a__len(nil) -> 0' a__len(cons(X, Z)) -> s(len(Z)) mark(fst(X1, X2)) -> a__fst(mark(X1), mark(X2)) mark(from(X)) -> a__from(mark(X)) mark(add(X1, X2)) -> a__add(mark(X1), mark(X2)) mark(len(X)) -> a__len(mark(X)) mark(0') -> 0' mark(s(X)) -> s(X) mark(nil) -> nil mark(cons(X1, X2)) -> cons(mark(X1), X2) a__fst(X1, X2) -> fst(X1, X2) a__from(X) -> from(X) a__add(X1, X2) -> add(X1, X2) a__len(X) -> len(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__fst(0, Z) -> nil a__fst(s(X), cons(Y, Z)) -> cons(mark(Y), fst(X, Z)) a__from(X) -> cons(mark(X), from(s(X))) a__add(0, X) -> mark(X) a__add(s(X), Y) -> s(add(X, Y)) a__len(nil) -> 0 a__len(cons(X, Z)) -> s(len(Z)) mark(fst(X1, X2)) -> a__fst(mark(X1), mark(X2)) mark(from(X)) -> a__from(mark(X)) mark(add(X1, X2)) -> a__add(mark(X1), mark(X2)) mark(len(X)) -> a__len(mark(X)) mark(0) -> 0 mark(s(X)) -> s(X) mark(nil) -> nil mark(cons(X1, X2)) -> cons(mark(X1), X2) a__fst(X1, X2) -> fst(X1, X2) a__from(X) -> from(X) a__add(X1, X2) -> add(X1, X2) a__len(X) -> len(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__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(0, z0) -> c A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FST(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 A__ADD(0, z0) -> c5(MARK(z0)) A__ADD(s(z0), z1) -> c6 A__ADD(z0, z1) -> c7 A__LEN(nil) -> c8 A__LEN(cons(z0, z1)) -> c9 A__LEN(z0) -> c10 MARK(fst(z0, z1)) -> c11(A__FST(mark(z0), mark(z1)), MARK(z0)) MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(len(z0)) -> c16(A__LEN(mark(z0)), MARK(z0)) MARK(0) -> c17 MARK(s(z0)) -> c18 MARK(nil) -> c19 MARK(cons(z0, z1)) -> c20(MARK(z0)) S tuples: A__FST(0, z0) -> c A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FST(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 A__ADD(0, z0) -> c5(MARK(z0)) A__ADD(s(z0), z1) -> c6 A__ADD(z0, z1) -> c7 A__LEN(nil) -> c8 A__LEN(cons(z0, z1)) -> c9 A__LEN(z0) -> c10 MARK(fst(z0, z1)) -> c11(A__FST(mark(z0), mark(z1)), MARK(z0)) MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(len(z0)) -> c16(A__LEN(mark(z0)), MARK(z0)) MARK(0) -> c17 MARK(s(z0)) -> c18 MARK(nil) -> c19 MARK(cons(z0, z1)) -> c20(MARK(z0)) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, A__LEN_1, MARK_1 Compound Symbols: c, c1_1, c2, c3_1, c4, c5_1, c6, c7, c8, c9, c10, c11_2, c12_2, c13_2, c14_2, c15_2, c16_2, c17, c18, c19, c20_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(1, INF). The TRS R consists of the following rules: A__FST(0, z0) -> c A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FST(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 A__ADD(0, z0) -> c5(MARK(z0)) A__ADD(s(z0), z1) -> c6 A__ADD(z0, z1) -> c7 A__LEN(nil) -> c8 A__LEN(cons(z0, z1)) -> c9 A__LEN(z0) -> c10 MARK(fst(z0, z1)) -> c11(A__FST(mark(z0), mark(z1)), MARK(z0)) MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(len(z0)) -> c16(A__LEN(mark(z0)), MARK(z0)) MARK(0) -> c17 MARK(s(z0)) -> c18 MARK(nil) -> c19 MARK(cons(z0, z1)) -> c20(MARK(z0)) The (relative) TRS S consists of the following rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil 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(1, INF). The TRS R consists of the following rules: A__FST(0', z0) -> c A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FST(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 A__ADD(0', z0) -> c5(MARK(z0)) A__ADD(s(z0), z1) -> c6 A__ADD(z0, z1) -> c7 A__LEN(nil) -> c8 A__LEN(cons(z0, z1)) -> c9 A__LEN(z0) -> c10 MARK(fst(z0, z1)) -> c11(A__FST(mark(z0), mark(z1)), MARK(z0)) MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(len(z0)) -> c16(A__LEN(mark(z0)), MARK(z0)) MARK(0') -> c17 MARK(s(z0)) -> c18 MARK(nil) -> c19 MARK(cons(z0, z1)) -> c20(MARK(z0)) The (relative) TRS S consists of the following rules: a__fst(0', z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0', z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0' a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0') -> 0' mark(s(z0)) -> s(z0) mark(nil) -> nil 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__FST(0', z0) -> c A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FST(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 A__ADD(0', z0) -> c5(MARK(z0)) A__ADD(s(z0), z1) -> c6 A__ADD(z0, z1) -> c7 A__LEN(nil) -> c8 A__LEN(cons(z0, z1)) -> c9 A__LEN(z0) -> c10 MARK(fst(z0, z1)) -> c11(A__FST(mark(z0), mark(z1)), MARK(z0)) MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(len(z0)) -> c16(A__LEN(mark(z0)), MARK(z0)) MARK(0') -> c17 MARK(s(z0)) -> c18 MARK(nil) -> c19 MARK(cons(z0, z1)) -> c20(MARK(z0)) a__fst(0', z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0', z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0' a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0') -> 0' mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Types: A__FST :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> c:c1:c2 0' :: 0':s:cons:nil:fst:from:add:len c :: c:c1:c2 s :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len cons :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c1 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c:c1:c2 MARK :: 0':s:cons:nil:fst:from:add:len -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c2 :: c:c1:c2 A__FROM :: 0':s:cons:nil:fst:from:add:len -> c3:c4 c3 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c3:c4 c4 :: c3:c4 A__ADD :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> c5:c6:c7 c5 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c5:c6:c7 c6 :: c5:c6:c7 c7 :: c5:c6:c7 A__LEN :: 0':s:cons:nil:fst:from:add:len -> c8:c9:c10 nil :: 0':s:cons:nil:fst:from:add:len c8 :: c8:c9:c10 c9 :: c8:c9:c10 c10 :: c8:c9:c10 fst :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c11 :: c:c1:c2 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 mark :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c12 :: c:c1:c2 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 from :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c13 :: c3:c4 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 add :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c14 :: c5:c6:c7 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c15 :: c5:c6:c7 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 len :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c16 :: c8:c9:c10 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c17 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c18 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c19 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c20 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 a__fst :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len a__from :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len a__add :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len a__len :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len hole_c:c1:c21_21 :: c:c1:c2 hole_0':s:cons:nil:fst:from:add:len2_21 :: 0':s:cons:nil:fst:from:add:len hole_c11:c12:c13:c14:c15:c16:c17:c18:c19:c203_21 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 hole_c3:c44_21 :: c3:c4 hole_c5:c6:c75_21 :: c5:c6:c7 hole_c8:c9:c106_21 :: c8:c9:c10 gen_0':s:cons:nil:fst:from:add:len7_21 :: Nat -> 0':s:cons:nil:fst:from:add:len gen_c11:c12:c13:c14:c15:c16:c17:c18:c19:c208_21 :: Nat -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 ---------------------------------------- (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__FST(0', z0) -> c A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FST(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 A__ADD(0', z0) -> c5(MARK(z0)) A__ADD(s(z0), z1) -> c6 A__ADD(z0, z1) -> c7 A__LEN(nil) -> c8 A__LEN(cons(z0, z1)) -> c9 A__LEN(z0) -> c10 MARK(fst(z0, z1)) -> c11(A__FST(mark(z0), mark(z1)), MARK(z0)) MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(len(z0)) -> c16(A__LEN(mark(z0)), MARK(z0)) MARK(0') -> c17 MARK(s(z0)) -> c18 MARK(nil) -> c19 MARK(cons(z0, z1)) -> c20(MARK(z0)) a__fst(0', z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0', z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0' a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0') -> 0' mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Types: A__FST :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> c:c1:c2 0' :: 0':s:cons:nil:fst:from:add:len c :: c:c1:c2 s :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len cons :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c1 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c:c1:c2 MARK :: 0':s:cons:nil:fst:from:add:len -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c2 :: c:c1:c2 A__FROM :: 0':s:cons:nil:fst:from:add:len -> c3:c4 c3 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c3:c4 c4 :: c3:c4 A__ADD :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> c5:c6:c7 c5 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c5:c6:c7 c6 :: c5:c6:c7 c7 :: c5:c6:c7 A__LEN :: 0':s:cons:nil:fst:from:add:len -> c8:c9:c10 nil :: 0':s:cons:nil:fst:from:add:len c8 :: c8:c9:c10 c9 :: c8:c9:c10 c10 :: c8:c9:c10 fst :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c11 :: c:c1:c2 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 mark :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c12 :: c:c1:c2 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 from :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c13 :: c3:c4 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 add :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c14 :: c5:c6:c7 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c15 :: c5:c6:c7 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 len :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len c16 :: c8:c9:c10 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c17 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c18 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c19 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 c20 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 a__fst :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len a__from :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len a__add :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len a__len :: 0':s:cons:nil:fst:from:add:len -> 0':s:cons:nil:fst:from:add:len hole_c:c1:c21_21 :: c:c1:c2 hole_0':s:cons:nil:fst:from:add:len2_21 :: 0':s:cons:nil:fst:from:add:len hole_c11:c12:c13:c14:c15:c16:c17:c18:c19:c203_21 :: c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 hole_c3:c44_21 :: c3:c4 hole_c5:c6:c75_21 :: c5:c6:c7 hole_c8:c9:c106_21 :: c8:c9:c10 gen_0':s:cons:nil:fst:from:add:len7_21 :: Nat -> 0':s:cons:nil:fst:from:add:len gen_c11:c12:c13:c14:c15:c16:c17:c18:c19:c208_21 :: Nat -> c11:c12:c13:c14:c15:c16:c17:c18:c19:c20 Generator Equations: gen_0':s:cons:nil:fst:from:add:len7_21(0) <=> 0' gen_0':s:cons:nil:fst:from:add:len7_21(+(x, 1)) <=> s(gen_0':s:cons:nil:fst:from:add:len7_21(x)) gen_c11:c12:c13:c14:c15:c16:c17:c18:c19:c208_21(0) <=> c17 gen_c11:c12:c13:c14:c15:c16:c17:c18:c19:c208_21(+(x, 1)) <=> c11(c, gen_c11:c12:c13:c14:c15:c16:c17:c18:c19:c208_21(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) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) Transformed a relative TRS into a decreasing-loop problem. ---------------------------------------- (16) Obligation: Analyzing the following TRS for decreasing loops: 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__FST(0, z0) -> c A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FST(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 A__ADD(0, z0) -> c5(MARK(z0)) A__ADD(s(z0), z1) -> c6 A__ADD(z0, z1) -> c7 A__LEN(nil) -> c8 A__LEN(cons(z0, z1)) -> c9 A__LEN(z0) -> c10 MARK(fst(z0, z1)) -> c11(A__FST(mark(z0), mark(z1)), MARK(z0)) MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(len(z0)) -> c16(A__LEN(mark(z0)), MARK(z0)) MARK(0) -> c17 MARK(s(z0)) -> c18 MARK(nil) -> c19 MARK(cons(z0, z1)) -> c20(MARK(z0)) The (relative) TRS S consists of the following rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Rewrite Strategy: INNERMOST ---------------------------------------- (17) RelTrsToWeightedTrsProof (UPPER BOUND(ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (18) 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__fst(0, Z) -> nil [1] a__fst(s(X), cons(Y, Z)) -> cons(mark(Y), fst(X, Z)) [1] a__from(X) -> cons(mark(X), from(s(X))) [1] a__add(0, X) -> mark(X) [1] a__add(s(X), Y) -> s(add(X, Y)) [1] a__len(nil) -> 0 [1] a__len(cons(X, Z)) -> s(len(Z)) [1] mark(fst(X1, X2)) -> a__fst(mark(X1), mark(X2)) [1] mark(from(X)) -> a__from(mark(X)) [1] mark(add(X1, X2)) -> a__add(mark(X1), mark(X2)) [1] mark(len(X)) -> a__len(mark(X)) [1] mark(0) -> 0 [1] mark(s(X)) -> s(X) [1] mark(nil) -> nil [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] a__fst(X1, X2) -> fst(X1, X2) [1] a__from(X) -> from(X) [1] a__add(X1, X2) -> add(X1, X2) [1] a__len(X) -> len(X) [1] Rewrite Strategy: INNERMOST ---------------------------------------- (19) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (20) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: a__fst(0, Z) -> nil [1] a__fst(s(X), cons(Y, Z)) -> cons(mark(Y), fst(X, Z)) [1] a__from(X) -> cons(mark(X), from(s(X))) [1] a__add(0, X) -> mark(X) [1] a__add(s(X), Y) -> s(add(X, Y)) [1] a__len(nil) -> 0 [1] a__len(cons(X, Z)) -> s(len(Z)) [1] mark(fst(X1, X2)) -> a__fst(mark(X1), mark(X2)) [1] mark(from(X)) -> a__from(mark(X)) [1] mark(add(X1, X2)) -> a__add(mark(X1), mark(X2)) [1] mark(len(X)) -> a__len(mark(X)) [1] mark(0) -> 0 [1] mark(s(X)) -> s(X) [1] mark(nil) -> nil [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] a__fst(X1, X2) -> fst(X1, X2) [1] a__from(X) -> from(X) [1] a__add(X1, X2) -> add(X1, X2) [1] a__len(X) -> len(X) [1] The TRS has the following type information: a__fst :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len 0 :: 0:nil:s:cons:fst:from:add:len nil :: 0:nil:s:cons:fst:from:add:len s :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len cons :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len mark :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len fst :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len a__from :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len from :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len a__add :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len add :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len a__len :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len len :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len Rewrite Strategy: INNERMOST ---------------------------------------- (21) 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__len_1 a__add_2 a__fst_2 a__from_1 Due to the following rules being added: none And the following fresh constants: none ---------------------------------------- (22) 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__fst(0, Z) -> nil [1] a__fst(s(X), cons(Y, Z)) -> cons(mark(Y), fst(X, Z)) [1] a__from(X) -> cons(mark(X), from(s(X))) [1] a__add(0, X) -> mark(X) [1] a__add(s(X), Y) -> s(add(X, Y)) [1] a__len(nil) -> 0 [1] a__len(cons(X, Z)) -> s(len(Z)) [1] mark(fst(X1, X2)) -> a__fst(mark(X1), mark(X2)) [1] mark(from(X)) -> a__from(mark(X)) [1] mark(add(X1, X2)) -> a__add(mark(X1), mark(X2)) [1] mark(len(X)) -> a__len(mark(X)) [1] mark(0) -> 0 [1] mark(s(X)) -> s(X) [1] mark(nil) -> nil [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] a__fst(X1, X2) -> fst(X1, X2) [1] a__from(X) -> from(X) [1] a__add(X1, X2) -> add(X1, X2) [1] a__len(X) -> len(X) [1] The TRS has the following type information: a__fst :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len 0 :: 0:nil:s:cons:fst:from:add:len nil :: 0:nil:s:cons:fst:from:add:len s :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len cons :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len mark :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len fst :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len a__from :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len from :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len a__add :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len add :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len a__len :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len len :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len Rewrite Strategy: INNERMOST ---------------------------------------- (23) NarrowingProof (BOTH BOUNDS(ID, ID)) Narrowed the inner basic terms of all right-hand sides by a single narrowing step. ---------------------------------------- (24) 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__fst(0, Z) -> nil [1] a__fst(s(X), cons(Y, Z)) -> cons(mark(Y), fst(X, Z)) [1] a__from(X) -> cons(mark(X), from(s(X))) [1] a__add(0, X) -> mark(X) [1] a__add(s(X), Y) -> s(add(X, Y)) [1] a__len(nil) -> 0 [1] a__len(cons(X, Z)) -> s(len(Z)) [1] mark(fst(X1, X2)) -> a__fst(mark(X1), mark(X2)) [1] mark(from(fst(X126, X226))) -> a__from(a__fst(mark(X126), mark(X226))) [2] mark(from(from(X46))) -> a__from(a__from(mark(X46))) [2] mark(from(add(X127, X227))) -> a__from(a__add(mark(X127), mark(X227))) [2] mark(from(len(X47))) -> a__from(a__len(mark(X47))) [2] mark(from(0)) -> a__from(0) [2] mark(from(s(X48))) -> a__from(s(X48)) [2] mark(from(nil)) -> a__from(nil) [2] mark(from(cons(X128, X228))) -> a__from(cons(mark(X128), X228)) [2] mark(add(X1, X2)) -> a__add(mark(X1), mark(X2)) [1] mark(len(fst(X156, X256))) -> a__len(a__fst(mark(X156), mark(X256))) [2] mark(len(from(X76))) -> a__len(a__from(mark(X76))) [2] mark(len(add(X157, X257))) -> a__len(a__add(mark(X157), mark(X257))) [2] mark(len(len(X77))) -> a__len(a__len(mark(X77))) [2] mark(len(0)) -> a__len(0) [2] mark(len(s(X78))) -> a__len(s(X78)) [2] mark(len(nil)) -> a__len(nil) [2] mark(len(cons(X158, X258))) -> a__len(cons(mark(X158), X258)) [2] mark(0) -> 0 [1] mark(s(X)) -> s(X) [1] mark(nil) -> nil [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] a__fst(X1, X2) -> fst(X1, X2) [1] a__from(X) -> from(X) [1] a__add(X1, X2) -> add(X1, X2) [1] a__len(X) -> len(X) [1] The TRS has the following type information: a__fst :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len 0 :: 0:nil:s:cons:fst:from:add:len nil :: 0:nil:s:cons:fst:from:add:len s :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len cons :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len mark :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len fst :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len a__from :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len from :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len a__add :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len add :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len a__len :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len len :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len Rewrite Strategy: INNERMOST ---------------------------------------- (25) 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 ---------------------------------------- (26) Obligation: Complexity RNTS consisting of the following rules: a__add(z, z') -{ 1 }-> mark(X) :|: z' = X, X >= 0, z = 0 a__add(z, z') -{ 1 }-> 1 + (1 + X + Y) :|: z = 1 + X, z' = Y, Y >= 0, X >= 0 a__add(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__from(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__from(z) -{ 1 }-> 1 + mark(X) + (1 + (1 + X)) :|: X >= 0, z = X a__fst(z, z') -{ 1 }-> 1 :|: Z >= 0, z' = Z, z = 0 a__fst(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__fst(z, z') -{ 1 }-> 1 + mark(Y) + (1 + X + Z) :|: Z >= 0, z = 1 + X, Y >= 0, X >= 0, z' = 1 + Y + Z a__len(z) -{ 1 }-> 0 :|: z = 1 a__len(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__len(z) -{ 1 }-> 1 + (1 + Z) :|: Z >= 0, X >= 0, z = 1 + X + Z mark(z) -{ 2 }-> a__len(a__len(mark(X77))) :|: X77 >= 0, z = 1 + (1 + X77) mark(z) -{ 2 }-> a__len(a__fst(mark(X156), mark(X256))) :|: X156 >= 0, z = 1 + (1 + X156 + X256), X256 >= 0 mark(z) -{ 2 }-> a__len(a__from(mark(X76))) :|: z = 1 + (1 + X76), X76 >= 0 mark(z) -{ 2 }-> a__len(a__add(mark(X157), mark(X257))) :|: X157 >= 0, z = 1 + (1 + X157 + X257), X257 >= 0 mark(z) -{ 2 }-> a__len(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__len(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__len(1 + X78) :|: z = 1 + (1 + X78), X78 >= 0 mark(z) -{ 2 }-> a__len(1 + mark(X158) + X258) :|: X158 >= 0, X258 >= 0, z = 1 + (1 + X158 + X258) mark(z) -{ 1 }-> a__fst(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> a__from(a__len(mark(X47))) :|: X47 >= 0, z = 1 + (1 + X47) mark(z) -{ 2 }-> a__from(a__fst(mark(X126), mark(X226))) :|: z = 1 + (1 + X126 + X226), X126 >= 0, X226 >= 0 mark(z) -{ 2 }-> a__from(a__from(mark(X46))) :|: X46 >= 0, z = 1 + (1 + X46) mark(z) -{ 2 }-> a__from(a__add(mark(X127), mark(X227))) :|: X227 >= 0, z = 1 + (1 + X127 + X227), X127 >= 0 mark(z) -{ 2 }-> a__from(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__from(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__from(1 + X48) :|: z = 1 + (1 + X48), X48 >= 0 mark(z) -{ 2 }-> a__from(1 + mark(X128) + X228) :|: X128 >= 0, z = 1 + (1 + X128 + X228), X228 >= 0 mark(z) -{ 1 }-> a__add(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 + X :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> 1 + mark(X1) + X2 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 ---------------------------------------- (27) InliningProof (UPPER BOUND(ID)) Inlined the following terminating rules on right-hand sides where appropriate: a__len(z) -{ 1 }-> 1 + (1 + Z) :|: Z >= 0, X >= 0, z = 1 + X + Z a__len(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__len(z) -{ 1 }-> 0 :|: z = 1 ---------------------------------------- (28) Obligation: Complexity RNTS consisting of the following rules: a__add(z, z') -{ 1 }-> mark(X) :|: z' = X, X >= 0, z = 0 a__add(z, z') -{ 1 }-> 1 + (1 + X + Y) :|: z = 1 + X, z' = Y, Y >= 0, X >= 0 a__add(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__from(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__from(z) -{ 1 }-> 1 + mark(X) + (1 + (1 + X)) :|: X >= 0, z = X a__fst(z, z') -{ 1 }-> 1 :|: Z >= 0, z' = Z, z = 0 a__fst(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__fst(z, z') -{ 1 }-> 1 + mark(Y) + (1 + X + Z) :|: Z >= 0, z = 1 + X, Y >= 0, X >= 0, z' = 1 + Y + Z a__len(z) -{ 1 }-> 0 :|: z = 1 a__len(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__len(z) -{ 1 }-> 1 + (1 + Z) :|: Z >= 0, X >= 0, z = 1 + X + Z mark(z) -{ 2 }-> a__len(a__len(mark(X77))) :|: X77 >= 0, z = 1 + (1 + X77) mark(z) -{ 2 }-> a__len(a__fst(mark(X156), mark(X256))) :|: X156 >= 0, z = 1 + (1 + X156 + X256), X256 >= 0 mark(z) -{ 2 }-> a__len(a__from(mark(X76))) :|: z = 1 + (1 + X76), X76 >= 0 mark(z) -{ 2 }-> a__len(a__add(mark(X157), mark(X257))) :|: X157 >= 0, z = 1 + (1 + X157 + X257), X257 >= 0 mark(z) -{ 2 }-> a__len(1 + mark(X158) + X258) :|: X158 >= 0, X258 >= 0, z = 1 + (1 + X158 + X258) mark(z) -{ 1 }-> a__fst(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> a__from(a__len(mark(X47))) :|: X47 >= 0, z = 1 + (1 + X47) mark(z) -{ 2 }-> a__from(a__fst(mark(X126), mark(X226))) :|: z = 1 + (1 + X126 + X226), X126 >= 0, X226 >= 0 mark(z) -{ 2 }-> a__from(a__from(mark(X46))) :|: X46 >= 0, z = 1 + (1 + X46) mark(z) -{ 2 }-> a__from(a__add(mark(X127), mark(X227))) :|: X227 >= 0, z = 1 + (1 + X127 + X227), X127 >= 0 mark(z) -{ 2 }-> a__from(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__from(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__from(1 + X48) :|: z = 1 + (1 + X48), X48 >= 0 mark(z) -{ 2 }-> a__from(1 + mark(X128) + X228) :|: X128 >= 0, z = 1 + (1 + X128 + X228), X228 >= 0 mark(z) -{ 1 }-> a__add(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) -{ 3 }-> 0 :|: z = 1 + (1 + X78), X78 >= 0, 1 + X78 = 1 mark(z) -{ 3 }-> 0 :|: z = 1 + 1, 1 = 1 mark(z) -{ 1 }-> 1 + X :|: z = 1 + X, X >= 0 mark(z) -{ 3 }-> 1 + X :|: z = 1 + 0, X >= 0, 0 = X mark(z) -{ 3 }-> 1 + X :|: z = 1 + (1 + X78), X78 >= 0, X >= 0, 1 + X78 = X mark(z) -{ 3 }-> 1 + X :|: z = 1 + 1, X >= 0, 1 = X mark(z) -{ 3 }-> 1 + (1 + Z) :|: z = 1 + (1 + X78), X78 >= 0, Z >= 0, X >= 0, 1 + X78 = 1 + X + Z mark(z) -{ 3 }-> 1 + (1 + Z) :|: z = 1 + 1, Z >= 0, X >= 0, 1 = 1 + X + Z mark(z) -{ 1 }-> 1 + mark(X1) + X2 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 ---------------------------------------- (29) SimplificationProof (BOTH BOUNDS(ID, ID)) Simplified the RNTS by moving equalities from the constraints into the right-hand sides. ---------------------------------------- (30) Obligation: Complexity RNTS consisting of the following rules: a__add(z, z') -{ 1 }-> mark(z') :|: z' >= 0, z = 0 a__add(z, z') -{ 1 }-> 1 + (1 + (z - 1) + z') :|: z' >= 0, z - 1 >= 0 a__add(z, z') -{ 1 }-> 1 + z + z' :|: z >= 0, z' >= 0 a__from(z) -{ 1 }-> 1 + z :|: z >= 0 a__from(z) -{ 1 }-> 1 + mark(z) + (1 + (1 + z)) :|: z >= 0 a__fst(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 a__fst(z, z') -{ 1 }-> 1 + z + z' :|: z >= 0, z' >= 0 a__fst(z, z') -{ 1 }-> 1 + mark(Y) + (1 + (z - 1) + Z) :|: Z >= 0, Y >= 0, z - 1 >= 0, z' = 1 + Y + Z a__len(z) -{ 1 }-> 0 :|: z = 1 a__len(z) -{ 1 }-> 1 + z :|: z >= 0 a__len(z) -{ 1 }-> 1 + (1 + Z) :|: Z >= 0, X >= 0, z = 1 + X + Z mark(z) -{ 2 }-> a__len(a__len(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__len(a__fst(mark(X156), mark(X256))) :|: X156 >= 0, z = 1 + (1 + X156 + X256), X256 >= 0 mark(z) -{ 2 }-> a__len(a__from(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__len(a__add(mark(X157), mark(X257))) :|: X157 >= 0, z = 1 + (1 + X157 + X257), X257 >= 0 mark(z) -{ 2 }-> a__len(1 + mark(X158) + X258) :|: X158 >= 0, X258 >= 0, z = 1 + (1 + X158 + X258) mark(z) -{ 1 }-> a__fst(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> a__from(a__len(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__from(a__fst(mark(X126), mark(X226))) :|: z = 1 + (1 + X126 + X226), X126 >= 0, X226 >= 0 mark(z) -{ 2 }-> a__from(a__from(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__from(a__add(mark(X127), mark(X227))) :|: X227 >= 0, z = 1 + (1 + X127 + X227), X127 >= 0 mark(z) -{ 2 }-> a__from(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__from(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__from(1 + (z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__from(1 + mark(X128) + X228) :|: X128 >= 0, z = 1 + (1 + X128 + X228), X228 >= 0 mark(z) -{ 1 }-> a__add(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) -{ 3 }-> 0 :|: z - 2 >= 0, 1 + (z - 2) = 1 mark(z) -{ 3 }-> 0 :|: z = 1 + 1, 1 = 1 mark(z) -{ 3 }-> 1 + X :|: z = 1 + 0, X >= 0, 0 = X mark(z) -{ 3 }-> 1 + X :|: z - 2 >= 0, X >= 0, 1 + (z - 2) = X mark(z) -{ 3 }-> 1 + X :|: z = 1 + 1, X >= 0, 1 = X mark(z) -{ 1 }-> 1 + (z - 1) :|: z - 1 >= 0 mark(z) -{ 3 }-> 1 + (1 + Z) :|: z - 2 >= 0, Z >= 0, X >= 0, 1 + (z - 2) = 1 + X + Z mark(z) -{ 3 }-> 1 + (1 + Z) :|: z = 1 + 1, Z >= 0, X >= 0, 1 = 1 + X + Z mark(z) -{ 1 }-> 1 + mark(X1) + X2 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 ---------------------------------------- (31) 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 ---------------------------------------- (32) 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__fst(0, Z) -> nil [1] a__fst(s(X), cons(Y, Z)) -> cons(mark(Y), fst(X, Z)) [1] a__from(X) -> cons(mark(X), from(s(X))) [1] a__add(0, X) -> mark(X) [1] a__add(s(X), Y) -> s(add(X, Y)) [1] a__len(nil) -> 0 [1] a__len(cons(X, Z)) -> s(len(Z)) [1] mark(fst(X1, X2)) -> a__fst(mark(X1), mark(X2)) [1] mark(from(X)) -> a__from(mark(X)) [1] mark(add(X1, X2)) -> a__add(mark(X1), mark(X2)) [1] mark(len(X)) -> a__len(mark(X)) [1] mark(0) -> 0 [1] mark(s(X)) -> s(X) [1] mark(nil) -> nil [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] a__fst(X1, X2) -> fst(X1, X2) [1] a__from(X) -> from(X) [1] a__add(X1, X2) -> add(X1, X2) [1] a__len(X) -> len(X) [1] The TRS has the following type information: a__fst :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len 0 :: 0:nil:s:cons:fst:from:add:len nil :: 0:nil:s:cons:fst:from:add:len s :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len cons :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len mark :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len fst :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len a__from :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len from :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len a__add :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len add :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len a__len :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len len :: 0:nil:s:cons:fst:from:add:len -> 0:nil:s:cons:fst:from:add:len Rewrite Strategy: INNERMOST ---------------------------------------- (33) 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 ---------------------------------------- (34) Obligation: Complexity RNTS consisting of the following rules: a__add(z, z') -{ 1 }-> mark(X) :|: z' = X, X >= 0, z = 0 a__add(z, z') -{ 1 }-> 1 + (1 + X + Y) :|: z = 1 + X, z' = Y, Y >= 0, X >= 0 a__add(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__from(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__from(z) -{ 1 }-> 1 + mark(X) + (1 + (1 + X)) :|: X >= 0, z = X a__fst(z, z') -{ 1 }-> 1 :|: Z >= 0, z' = Z, z = 0 a__fst(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__fst(z, z') -{ 1 }-> 1 + mark(Y) + (1 + X + Z) :|: Z >= 0, z = 1 + X, Y >= 0, X >= 0, z' = 1 + Y + Z a__len(z) -{ 1 }-> 0 :|: z = 1 a__len(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__len(z) -{ 1 }-> 1 + (1 + Z) :|: Z >= 0, X >= 0, z = 1 + X + Z mark(z) -{ 1 }-> a__len(mark(X)) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__fst(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> a__from(mark(X)) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__add(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 + 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. ---------------------------------------- (35) CpxTrsToCdtProof (UPPER BOUND(ID)) Converted Cpx (relative) TRS with rewrite strategy PARALLEL_INNERMOST to CDT ---------------------------------------- (36) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(0, z0) -> c A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FST(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 A__ADD(0, z0) -> c5(MARK(z0)) A__ADD(s(z0), z1) -> c6 A__ADD(z0, z1) -> c7 A__LEN(nil) -> c8 A__LEN(cons(z0, z1)) -> c9 A__LEN(z0) -> c10 MARK(fst(z0, z1)) -> c11(A__FST(mark(z0), mark(z1)), MARK(z0)) MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(len(z0)) -> c16(A__LEN(mark(z0)), MARK(z0)) MARK(0) -> c17 MARK(s(z0)) -> c18 MARK(nil) -> c19 MARK(cons(z0, z1)) -> c20(MARK(z0)) S tuples: A__FST(0, z0) -> c A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FST(z0, z1) -> c2 A__FROM(z0) -> c3(MARK(z0)) A__FROM(z0) -> c4 A__ADD(0, z0) -> c5(MARK(z0)) A__ADD(s(z0), z1) -> c6 A__ADD(z0, z1) -> c7 A__LEN(nil) -> c8 A__LEN(cons(z0, z1)) -> c9 A__LEN(z0) -> c10 MARK(fst(z0, z1)) -> c11(A__FST(mark(z0), mark(z1)), MARK(z0)) MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(len(z0)) -> c16(A__LEN(mark(z0)), MARK(z0)) MARK(0) -> c17 MARK(s(z0)) -> c18 MARK(nil) -> c19 MARK(cons(z0, z1)) -> c20(MARK(z0)) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, A__LEN_1, MARK_1 Compound Symbols: c, c1_1, c2, c3_1, c4, c5_1, c6, c7, c8, c9, c10, c11_2, c12_2, c13_2, c14_2, c15_2, c16_2, c17, c18, c19, c20_1 ---------------------------------------- (37) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 11 trailing nodes: A__FST(0, z0) -> c A__LEN(nil) -> c8 MARK(0) -> c17 MARK(s(z0)) -> c18 A__ADD(z0, z1) -> c7 A__FROM(z0) -> c4 MARK(nil) -> c19 A__LEN(z0) -> c10 A__ADD(s(z0), z1) -> c6 A__FST(z0, z1) -> c2 A__LEN(cons(z0, z1)) -> c9 ---------------------------------------- (38) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(fst(z0, z1)) -> c11(A__FST(mark(z0), mark(z1)), MARK(z0)) MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(len(z0)) -> c16(A__LEN(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(fst(z0, z1)) -> c11(A__FST(mark(z0), mark(z1)), MARK(z0)) MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(len(z0)) -> c16(A__LEN(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c11_2, c12_2, c13_2, c14_2, c15_2, c16_2, c20_1 ---------------------------------------- (39) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (40) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(fst(z0, z1)) -> c11(A__FST(mark(z0), mark(z1)), MARK(z0)) MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(fst(z0, z1)) -> c11(A__FST(mark(z0), mark(z1)), MARK(z0)) MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c11_2, c12_2, c13_2, c14_2, c15_2, c20_1, c16_1 ---------------------------------------- (41) CdtToCpxRelTrsProof (BOTH BOUNDS(ID, ID)) Converted S to standard rules, and D \ S as well as R to relative rules. ---------------------------------------- (42) 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__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(fst(z0, z1)) -> c11(A__FST(mark(z0), mark(z1)), MARK(z0)) MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) The (relative) TRS S consists of the following rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Rewrite Strategy: INNERMOST ---------------------------------------- (43) RelTrsToTrsProof (UPPER BOUND(ID)) transformed relative TRS to TRS ---------------------------------------- (44) 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__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(fst(z0, z1)) -> c11(A__FST(mark(z0), mark(z1)), MARK(z0)) MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) S is empty. Rewrite Strategy: INNERMOST ---------------------------------------- (45) RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (46) 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__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) [1] A__FROM(z0) -> c3(MARK(z0)) [1] A__ADD(0, z0) -> c5(MARK(z0)) [1] MARK(fst(z0, z1)) -> c11(A__FST(mark(z0), mark(z1)), MARK(z0)) [1] MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) [1] MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) [1] MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) [1] MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) [1] MARK(cons(z0, z1)) -> c20(MARK(z0)) [1] MARK(len(z0)) -> c16(MARK(z0)) [1] a__fst(0, z0) -> nil [0] a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) [0] a__fst(z0, z1) -> fst(z0, z1) [0] a__from(z0) -> cons(mark(z0), from(s(z0))) [0] a__from(z0) -> from(z0) [0] a__add(0, z0) -> mark(z0) [0] a__add(s(z0), z1) -> s(add(z0, z1)) [0] a__add(z0, z1) -> add(z0, z1) [0] a__len(nil) -> 0 [0] a__len(cons(z0, z1)) -> s(len(z1)) [0] a__len(z0) -> len(z0) [0] mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) [0] mark(from(z0)) -> a__from(mark(z0)) [0] mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) [0] mark(len(z0)) -> a__len(mark(z0)) [0] mark(0) -> 0 [0] mark(s(z0)) -> s(z0) [0] mark(nil) -> nil [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] Rewrite Strategy: INNERMOST ---------------------------------------- (47) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (48) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) [1] A__FROM(z0) -> c3(MARK(z0)) [1] A__ADD(0, z0) -> c5(MARK(z0)) [1] MARK(fst(z0, z1)) -> c11(A__FST(mark(z0), mark(z1)), MARK(z0)) [1] MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) [1] MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) [1] MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) [1] MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) [1] MARK(cons(z0, z1)) -> c20(MARK(z0)) [1] MARK(len(z0)) -> c16(MARK(z0)) [1] a__fst(0, z0) -> nil [0] a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) [0] a__fst(z0, z1) -> fst(z0, z1) [0] a__from(z0) -> cons(mark(z0), from(s(z0))) [0] a__from(z0) -> from(z0) [0] a__add(0, z0) -> mark(z0) [0] a__add(s(z0), z1) -> s(add(z0, z1)) [0] a__add(z0, z1) -> add(z0, z1) [0] a__len(nil) -> 0 [0] a__len(cons(z0, z1)) -> s(len(z1)) [0] a__len(z0) -> len(z0) [0] mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) [0] mark(from(z0)) -> a__from(mark(z0)) [0] mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) [0] mark(len(z0)) -> a__len(mark(z0)) [0] mark(0) -> 0 [0] mark(s(z0)) -> s(z0) [0] mark(nil) -> nil [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] The TRS has the following type information: A__FST :: s:cons:0:fst:from:add:len:nil -> s:cons:0:fst:from:add:len:nil -> c1 s :: s:cons:0:fst:from:add:len:nil -> s:cons:0:fst:from:add:len:nil cons :: s:cons:0:fst:from:add:len:nil -> s:cons:0:fst:from:add:len:nil -> s:cons:0:fst:from:add:len:nil c1 :: c11:c12:c13:c14:c15:c20:c16 -> c1 MARK :: s:cons:0:fst:from:add:len:nil -> c11:c12:c13:c14:c15:c20:c16 A__FROM :: s:cons:0:fst:from:add:len:nil -> c3 c3 :: c11:c12:c13:c14:c15:c20:c16 -> c3 A__ADD :: s:cons:0:fst:from:add:len:nil -> s:cons:0:fst:from:add:len:nil -> c5 0 :: s:cons:0:fst:from:add:len:nil c5 :: c11:c12:c13:c14:c15:c20:c16 -> c5 fst :: s:cons:0:fst:from:add:len:nil -> s:cons:0:fst:from:add:len:nil -> s:cons:0:fst:from:add:len:nil c11 :: c1 -> c11:c12:c13:c14:c15:c20:c16 -> c11:c12:c13:c14:c15:c20:c16 mark :: s:cons:0:fst:from:add:len:nil -> s:cons:0:fst:from:add:len:nil c12 :: c1 -> c11:c12:c13:c14:c15:c20:c16 -> c11:c12:c13:c14:c15:c20:c16 from :: s:cons:0:fst:from:add:len:nil -> s:cons:0:fst:from:add:len:nil c13 :: c3 -> c11:c12:c13:c14:c15:c20:c16 -> c11:c12:c13:c14:c15:c20:c16 add :: s:cons:0:fst:from:add:len:nil -> s:cons:0:fst:from:add:len:nil -> s:cons:0:fst:from:add:len:nil c14 :: c5 -> c11:c12:c13:c14:c15:c20:c16 -> c11:c12:c13:c14:c15:c20:c16 c15 :: c5 -> c11:c12:c13:c14:c15:c20:c16 -> c11:c12:c13:c14:c15:c20:c16 c20 :: c11:c12:c13:c14:c15:c20:c16 -> c11:c12:c13:c14:c15:c20:c16 len :: s:cons:0:fst:from:add:len:nil -> s:cons:0:fst:from:add:len:nil c16 :: c11:c12:c13:c14:c15:c20:c16 -> c11:c12:c13:c14:c15:c20:c16 a__fst :: s:cons:0:fst:from:add:len:nil -> s:cons:0:fst:from:add:len:nil -> s:cons:0:fst:from:add:len:nil nil :: s:cons:0:fst:from:add:len:nil a__from :: s:cons:0:fst:from:add:len:nil -> s:cons:0:fst:from:add:len:nil a__add :: s:cons:0:fst:from:add:len:nil -> s:cons:0:fst:from:add:len:nil -> s:cons:0:fst:from:add:len:nil a__len :: s:cons:0:fst:from:add:len:nil -> s:cons:0:fst:from:add:len:nil Rewrite Strategy: INNERMOST ---------------------------------------- (49) 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__FST_2 A__FROM_1 A__ADD_2 MARK_1 (c) The following functions are completely defined: a__fst_2 a__from_1 a__add_2 a__len_1 mark_1 Due to the following rules being added: a__fst(v0, v1) -> null_a__fst [0] a__from(v0) -> null_a__from [0] a__add(v0, v1) -> null_a__add [0] a__len(v0) -> null_a__len [0] mark(v0) -> null_mark [0] And the following fresh constants: null_a__fst, null_a__from, null_a__add, null_a__len, null_mark, const, const1, const2, const3 ---------------------------------------- (50) 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__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) [1] A__FROM(z0) -> c3(MARK(z0)) [1] A__ADD(0, z0) -> c5(MARK(z0)) [1] MARK(fst(z0, z1)) -> c11(A__FST(mark(z0), mark(z1)), MARK(z0)) [1] MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) [1] MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) [1] MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) [1] MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) [1] MARK(cons(z0, z1)) -> c20(MARK(z0)) [1] MARK(len(z0)) -> c16(MARK(z0)) [1] a__fst(0, z0) -> nil [0] a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) [0] a__fst(z0, z1) -> fst(z0, z1) [0] a__from(z0) -> cons(mark(z0), from(s(z0))) [0] a__from(z0) -> from(z0) [0] a__add(0, z0) -> mark(z0) [0] a__add(s(z0), z1) -> s(add(z0, z1)) [0] a__add(z0, z1) -> add(z0, z1) [0] a__len(nil) -> 0 [0] a__len(cons(z0, z1)) -> s(len(z1)) [0] a__len(z0) -> len(z0) [0] mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) [0] mark(from(z0)) -> a__from(mark(z0)) [0] mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) [0] mark(len(z0)) -> a__len(mark(z0)) [0] mark(0) -> 0 [0] mark(s(z0)) -> s(z0) [0] mark(nil) -> nil [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] a__fst(v0, v1) -> null_a__fst [0] a__from(v0) -> null_a__from [0] a__add(v0, v1) -> null_a__add [0] a__len(v0) -> null_a__len [0] mark(v0) -> null_mark [0] The TRS has the following type information: A__FST :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> c1 s :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark cons :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark c1 :: c11:c12:c13:c14:c15:c20:c16 -> c1 MARK :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> c11:c12:c13:c14:c15:c20:c16 A__FROM :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> c3 c3 :: c11:c12:c13:c14:c15:c20:c16 -> c3 A__ADD :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> c5 0 :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark c5 :: c11:c12:c13:c14:c15:c20:c16 -> c5 fst :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark c11 :: c1 -> c11:c12:c13:c14:c15:c20:c16 -> c11:c12:c13:c14:c15:c20:c16 mark :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark c12 :: c1 -> c11:c12:c13:c14:c15:c20:c16 -> c11:c12:c13:c14:c15:c20:c16 from :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark c13 :: c3 -> c11:c12:c13:c14:c15:c20:c16 -> c11:c12:c13:c14:c15:c20:c16 add :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark c14 :: c5 -> c11:c12:c13:c14:c15:c20:c16 -> c11:c12:c13:c14:c15:c20:c16 c15 :: c5 -> c11:c12:c13:c14:c15:c20:c16 -> c11:c12:c13:c14:c15:c20:c16 c20 :: c11:c12:c13:c14:c15:c20:c16 -> c11:c12:c13:c14:c15:c20:c16 len :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark c16 :: c11:c12:c13:c14:c15:c20:c16 -> c11:c12:c13:c14:c15:c20:c16 a__fst :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark nil :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark a__from :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark a__add :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark a__len :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark null_a__fst :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark null_a__from :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark null_a__add :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark null_a__len :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark null_mark :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark const :: c1 const1 :: c11:c12:c13:c14:c15:c20:c16 const2 :: c3 const3 :: c5 Rewrite Strategy: INNERMOST ---------------------------------------- (51) NarrowingProof (BOTH BOUNDS(ID, ID)) Narrowed the inner basic terms of all right-hand sides by a single narrowing step. ---------------------------------------- (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__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) [1] A__FROM(z0) -> c3(MARK(z0)) [1] A__ADD(0, z0) -> c5(MARK(z0)) [1] MARK(fst(z0, z1)) -> c11(A__FST(mark(z0), mark(z1)), MARK(z0)) [1] MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) [1] MARK(from(fst(z0119, z159))) -> c13(A__FROM(a__fst(mark(z0119), mark(z159))), MARK(fst(z0119, z159))) [1] MARK(from(from(z0120))) -> c13(A__FROM(a__from(mark(z0120))), MARK(from(z0120))) [1] MARK(from(add(z0121, z160))) -> c13(A__FROM(a__add(mark(z0121), mark(z160))), MARK(add(z0121, z160))) [1] MARK(from(len(z0122))) -> c13(A__FROM(a__len(mark(z0122))), MARK(len(z0122))) [1] MARK(from(0)) -> c13(A__FROM(0), MARK(0)) [1] MARK(from(s(z0123))) -> c13(A__FROM(s(z0123)), MARK(s(z0123))) [1] MARK(from(nil)) -> c13(A__FROM(nil), MARK(nil)) [1] MARK(from(cons(z0124, z161))) -> c13(A__FROM(cons(mark(z0124), z161)), MARK(cons(z0124, z161))) [1] MARK(from(z0)) -> c13(A__FROM(null_mark), MARK(z0)) [1] MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) [1] MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) [1] MARK(cons(z0, z1)) -> c20(MARK(z0)) [1] MARK(len(z0)) -> c16(MARK(z0)) [1] a__fst(0, z0) -> nil [0] a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) [0] a__fst(z0, z1) -> fst(z0, z1) [0] a__from(z0) -> cons(mark(z0), from(s(z0))) [0] a__from(z0) -> from(z0) [0] a__add(0, z0) -> mark(z0) [0] a__add(s(z0), z1) -> s(add(z0, z1)) [0] a__add(z0, z1) -> add(z0, z1) [0] a__len(nil) -> 0 [0] a__len(cons(z0, z1)) -> s(len(z1)) [0] a__len(z0) -> len(z0) [0] mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) [0] mark(from(fst(z0305, z1152))) -> a__from(a__fst(mark(z0305), mark(z1152))) [0] mark(from(from(z0306))) -> a__from(a__from(mark(z0306))) [0] mark(from(add(z0307, z1153))) -> a__from(a__add(mark(z0307), mark(z1153))) [0] mark(from(len(z0308))) -> a__from(a__len(mark(z0308))) [0] mark(from(0)) -> a__from(0) [0] mark(from(s(z0309))) -> a__from(s(z0309)) [0] mark(from(nil)) -> a__from(nil) [0] mark(from(cons(z0310, z1154))) -> a__from(cons(mark(z0310), z1154)) [0] mark(from(z0)) -> a__from(null_mark) [0] mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) [0] mark(len(fst(z0371, z1185))) -> a__len(a__fst(mark(z0371), mark(z1185))) [0] mark(len(from(z0372))) -> a__len(a__from(mark(z0372))) [0] mark(len(add(z0373, z1186))) -> a__len(a__add(mark(z0373), mark(z1186))) [0] mark(len(len(z0374))) -> a__len(a__len(mark(z0374))) [0] mark(len(0)) -> a__len(0) [0] mark(len(s(z0375))) -> a__len(s(z0375)) [0] mark(len(nil)) -> a__len(nil) [0] mark(len(cons(z0376, z1187))) -> a__len(cons(mark(z0376), z1187)) [0] mark(len(z0)) -> a__len(null_mark) [0] mark(0) -> 0 [0] mark(s(z0)) -> s(z0) [0] mark(nil) -> nil [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] a__fst(v0, v1) -> null_a__fst [0] a__from(v0) -> null_a__from [0] a__add(v0, v1) -> null_a__add [0] a__len(v0) -> null_a__len [0] mark(v0) -> null_mark [0] The TRS has the following type information: A__FST :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> c1 s :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark cons :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark c1 :: c11:c12:c13:c14:c15:c20:c16 -> c1 MARK :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> c11:c12:c13:c14:c15:c20:c16 A__FROM :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> c3 c3 :: c11:c12:c13:c14:c15:c20:c16 -> c3 A__ADD :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> c5 0 :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark c5 :: c11:c12:c13:c14:c15:c20:c16 -> c5 fst :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark c11 :: c1 -> c11:c12:c13:c14:c15:c20:c16 -> c11:c12:c13:c14:c15:c20:c16 mark :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark c12 :: c1 -> c11:c12:c13:c14:c15:c20:c16 -> c11:c12:c13:c14:c15:c20:c16 from :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark c13 :: c3 -> c11:c12:c13:c14:c15:c20:c16 -> c11:c12:c13:c14:c15:c20:c16 add :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark c14 :: c5 -> c11:c12:c13:c14:c15:c20:c16 -> c11:c12:c13:c14:c15:c20:c16 c15 :: c5 -> c11:c12:c13:c14:c15:c20:c16 -> c11:c12:c13:c14:c15:c20:c16 c20 :: c11:c12:c13:c14:c15:c20:c16 -> c11:c12:c13:c14:c15:c20:c16 len :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark c16 :: c11:c12:c13:c14:c15:c20:c16 -> c11:c12:c13:c14:c15:c20:c16 a__fst :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark nil :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark a__from :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark a__add :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark a__len :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark null_a__fst :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark null_a__from :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark null_a__add :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark null_a__len :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark null_mark :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark const :: c1 const1 :: c11:c12:c13:c14:c15:c20:c16 const2 :: c3 const3 :: c5 Rewrite Strategy: INNERMOST ---------------------------------------- (53) 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__fst => 0 null_a__from => 0 null_a__add => 0 null_a__len => 0 null_mark => 0 const => 0 const1 => 0 const2 => 0 const3 => 0 ---------------------------------------- (54) Obligation: Complexity RNTS consisting of the following rules: A__ADD(z, z') -{ 1 }-> 1 + MARK(z0) :|: z0 >= 0, z = 0, z' = z0 A__FROM(z) -{ 1 }-> 1 + MARK(z0) :|: z = z0, z0 >= 0 A__FST(z, z') -{ 1 }-> 1 + MARK(z1) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 MARK(z) -{ 1 }-> 1 + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + MARK(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__FST(mark(z0), mark(z1)) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__FST(mark(z0), mark(z1)) + MARK(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__FROM(a__len(mark(z0122))) + MARK(1 + z0122) :|: z = 1 + (1 + z0122), z0122 >= 0 MARK(z) -{ 1 }-> 1 + A__FROM(a__fst(mark(z0119), mark(z159))) + MARK(1 + z0119 + z159) :|: z0119 >= 0, z = 1 + (1 + z0119 + z159), z159 >= 0 MARK(z) -{ 1 }-> 1 + A__FROM(a__from(mark(z0120))) + MARK(1 + z0120) :|: z0120 >= 0, z = 1 + (1 + z0120) MARK(z) -{ 1 }-> 1 + A__FROM(a__add(mark(z0121), mark(z160))) + MARK(1 + z0121 + z160) :|: z0121 >= 0, z = 1 + (1 + z0121 + z160), z160 >= 0 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 + z0123) + MARK(1 + z0123) :|: z = 1 + (1 + z0123), z0123 >= 0 MARK(z) -{ 1 }-> 1 + A__FROM(1 + mark(z0124) + z161) + MARK(1 + z0124 + z161) :|: z161 >= 0, z = 1 + (1 + z0124 + z161), z0124 >= 0 MARK(z) -{ 1 }-> 1 + A__ADD(mark(z0), mark(z1)) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__ADD(mark(z0), mark(z1)) + MARK(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__add(z, z') -{ 0 }-> mark(z0) :|: z0 >= 0, z = 0, z' = z0 a__add(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__add(z, z') -{ 0 }-> 1 + (1 + z0 + z1) :|: z1 >= 0, z = 1 + z0, z' = z1, z0 >= 0 a__add(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 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 a__fst(z, z') -{ 0 }-> 1 :|: z0 >= 0, z = 0, z' = z0 a__fst(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__fst(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 a__fst(z, z') -{ 0 }-> 1 + mark(z1) + (1 + z0 + z2) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 a__len(z) -{ 0 }-> 0 :|: z = 1 a__len(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__len(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__len(z) -{ 0 }-> 1 + (1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__len(a__len(mark(z0374))) :|: z0374 >= 0, z = 1 + (1 + z0374) mark(z) -{ 0 }-> a__len(a__fst(mark(z0371), mark(z1185))) :|: z = 1 + (1 + z0371 + z1185), z0371 >= 0, z1185 >= 0 mark(z) -{ 0 }-> a__len(a__from(mark(z0372))) :|: z0372 >= 0, z = 1 + (1 + z0372) mark(z) -{ 0 }-> a__len(a__add(mark(z0373), mark(z1186))) :|: z1186 >= 0, z = 1 + (1 + z0373 + z1186), z0373 >= 0 mark(z) -{ 0 }-> a__len(1) :|: z = 1 + 1 mark(z) -{ 0 }-> a__len(0) :|: z = 1 + 0 mark(z) -{ 0 }-> a__len(0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__len(1 + z0375) :|: z0375 >= 0, z = 1 + (1 + z0375) mark(z) -{ 0 }-> a__len(1 + mark(z0376) + z1187) :|: z0376 >= 0, z1187 >= 0, z = 1 + (1 + z0376 + z1187) mark(z) -{ 0 }-> a__fst(mark(z0), mark(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__from(a__len(mark(z0308))) :|: z0308 >= 0, z = 1 + (1 + z0308) mark(z) -{ 0 }-> a__from(a__fst(mark(z0305), mark(z1152))) :|: z = 1 + (1 + z0305 + z1152), z0305 >= 0, z1152 >= 0 mark(z) -{ 0 }-> a__from(a__from(mark(z0306))) :|: z0306 >= 0, z = 1 + (1 + z0306) mark(z) -{ 0 }-> a__from(a__add(mark(z0307), mark(z1153))) :|: z0307 >= 0, z1153 >= 0, z = 1 + (1 + z0307 + z1153) 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 + z0309) :|: z0309 >= 0, z = 1 + (1 + z0309) mark(z) -{ 0 }-> a__from(1 + mark(z0310) + z1154) :|: z0310 >= 0, z1154 >= 0, z = 1 + (1 + z0310 + z1154) mark(z) -{ 0 }-> a__add(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 + z0 :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> 1 + mark(z0) + z1 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ---------------------------------------- (55) InliningProof (UPPER BOUND(ID)) Inlined the following terminating rules on right-hand sides where appropriate: a__len(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__len(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__len(z) -{ 0 }-> 0 :|: z = 1 a__len(z) -{ 0 }-> 1 + (1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ---------------------------------------- (56) Obligation: Complexity RNTS consisting of the following rules: A__ADD(z, z') -{ 1 }-> 1 + MARK(z0) :|: z0 >= 0, z = 0, z' = z0 A__FROM(z) -{ 1 }-> 1 + MARK(z0) :|: z = z0, z0 >= 0 A__FST(z, z') -{ 1 }-> 1 + MARK(z1) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 MARK(z) -{ 1 }-> 1 + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + MARK(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__FST(mark(z0), mark(z1)) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__FST(mark(z0), mark(z1)) + MARK(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__FROM(a__len(mark(z0122))) + MARK(1 + z0122) :|: z = 1 + (1 + z0122), z0122 >= 0 MARK(z) -{ 1 }-> 1 + A__FROM(a__fst(mark(z0119), mark(z159))) + MARK(1 + z0119 + z159) :|: z0119 >= 0, z = 1 + (1 + z0119 + z159), z159 >= 0 MARK(z) -{ 1 }-> 1 + A__FROM(a__from(mark(z0120))) + MARK(1 + z0120) :|: z0120 >= 0, z = 1 + (1 + z0120) MARK(z) -{ 1 }-> 1 + A__FROM(a__add(mark(z0121), mark(z160))) + MARK(1 + z0121 + z160) :|: z0121 >= 0, z = 1 + (1 + z0121 + z160), z160 >= 0 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 + z0123) + MARK(1 + z0123) :|: z = 1 + (1 + z0123), z0123 >= 0 MARK(z) -{ 1 }-> 1 + A__FROM(1 + mark(z0124) + z161) + MARK(1 + z0124 + z161) :|: z161 >= 0, z = 1 + (1 + z0124 + z161), z0124 >= 0 MARK(z) -{ 1 }-> 1 + A__ADD(mark(z0), mark(z1)) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__ADD(mark(z0), mark(z1)) + MARK(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__add(z, z') -{ 0 }-> mark(z0) :|: z0 >= 0, z = 0, z' = z0 a__add(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__add(z, z') -{ 0 }-> 1 + (1 + z0 + z1) :|: z1 >= 0, z = 1 + z0, z' = z1, z0 >= 0 a__add(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 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 a__fst(z, z') -{ 0 }-> 1 :|: z0 >= 0, z = 0, z' = z0 a__fst(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__fst(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 a__fst(z, z') -{ 0 }-> 1 + mark(z1) + (1 + z0 + z2) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 a__len(z) -{ 0 }-> 0 :|: z = 1 a__len(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__len(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__len(z) -{ 0 }-> 1 + (1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__len(a__len(mark(z0374))) :|: z0374 >= 0, z = 1 + (1 + z0374) mark(z) -{ 0 }-> a__len(a__fst(mark(z0371), mark(z1185))) :|: z = 1 + (1 + z0371 + z1185), z0371 >= 0, z1185 >= 0 mark(z) -{ 0 }-> a__len(a__from(mark(z0372))) :|: z0372 >= 0, z = 1 + (1 + z0372) mark(z) -{ 0 }-> a__len(a__add(mark(z0373), mark(z1186))) :|: z1186 >= 0, z = 1 + (1 + z0373 + z1186), z0373 >= 0 mark(z) -{ 0 }-> a__len(1 + mark(z0376) + z1187) :|: z0376 >= 0, z1187 >= 0, z = 1 + (1 + z0376 + z1187) mark(z) -{ 0 }-> a__fst(mark(z0), mark(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__from(a__len(mark(z0308))) :|: z0308 >= 0, z = 1 + (1 + z0308) mark(z) -{ 0 }-> a__from(a__fst(mark(z0305), mark(z1152))) :|: z = 1 + (1 + z0305 + z1152), z0305 >= 0, z1152 >= 0 mark(z) -{ 0 }-> a__from(a__from(mark(z0306))) :|: z0306 >= 0, z = 1 + (1 + z0306) mark(z) -{ 0 }-> a__from(a__add(mark(z0307), mark(z1153))) :|: z0307 >= 0, z1153 >= 0, z = 1 + (1 + z0307 + z1153) 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 + z0309) :|: z0309 >= 0, z = 1 + (1 + z0309) mark(z) -{ 0 }-> a__from(1 + mark(z0310) + z1154) :|: z0310 >= 0, z1154 >= 0, z = 1 + (1 + z0310 + z1154) mark(z) -{ 0 }-> a__add(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 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 mark(z) -{ 0 }-> 0 :|: z0375 >= 0, z = 1 + (1 + z0375), v0 >= 0, 1 + z0375 = v0 mark(z) -{ 0 }-> 0 :|: z0375 >= 0, z = 1 + (1 + z0375), 1 + z0375 = 1 mark(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 mark(z) -{ 0 }-> 0 :|: z = 1 + 1, 1 = 1 mark(z) -{ 0 }-> 0 :|: z = 1 + z0, z0 >= 0, v0 >= 0, 0 = v0 mark(z) -{ 0 }-> 1 + z0 :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> 1 + z0 :|: z = 1 + 0, 0 = z0, z0 >= 0 mark(z) -{ 0 }-> 1 + z0 :|: z0375 >= 0, z = 1 + (1 + z0375), 1 + z0375 = z0, z0 >= 0 mark(z) -{ 0 }-> 1 + z0 :|: z = 1 + 1, 1 = z0, z0 >= 0 mark(z) -{ 0 }-> 1 + z0' :|: z = 1 + z0, z0 >= 0, 0 = z0', z0' >= 0 mark(z) -{ 0 }-> 1 + (1 + z1) :|: z0375 >= 0, z = 1 + (1 + z0375), z1 >= 0, z0 >= 0, 1 + z0375 = 1 + z0 + z1 mark(z) -{ 0 }-> 1 + (1 + z1) :|: z = 1 + 1, z1 >= 0, z0 >= 0, 1 = 1 + z0 + z1 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__ADD(z, z') -{ 1 }-> 1 + MARK(z') :|: z' >= 0, z = 0 A__FROM(z) -{ 1 }-> 1 + MARK(z) :|: z >= 0 A__FST(z, z') -{ 1 }-> 1 + MARK(z1) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 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__FST(mark(z0), mark(z1)) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__FST(mark(z0), mark(z1)) + MARK(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__FROM(a__len(mark(z - 2))) + MARK(1 + (z - 2)) :|: z - 2 >= 0 MARK(z) -{ 1 }-> 1 + A__FROM(a__fst(mark(z0119), mark(z159))) + MARK(1 + z0119 + z159) :|: z0119 >= 0, z = 1 + (1 + z0119 + z159), z159 >= 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__add(mark(z0121), mark(z160))) + MARK(1 + z0121 + z160) :|: z0121 >= 0, z = 1 + (1 + z0121 + z160), z160 >= 0 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 + (z - 2)) + MARK(1 + (z - 2)) :|: z - 2 >= 0 MARK(z) -{ 1 }-> 1 + A__FROM(1 + mark(z0124) + z161) + MARK(1 + z0124 + z161) :|: z161 >= 0, z = 1 + (1 + z0124 + z161), z0124 >= 0 MARK(z) -{ 1 }-> 1 + A__ADD(mark(z0), mark(z1)) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__ADD(mark(z0), mark(z1)) + MARK(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__add(z, z') -{ 0 }-> mark(z') :|: z' >= 0, z = 0 a__add(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 a__add(z, z') -{ 0 }-> 1 + (1 + (z - 1) + z') :|: z' >= 0, z - 1 >= 0 a__add(z, z') -{ 0 }-> 1 + z + z' :|: z' >= 0, z >= 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 a__fst(z, z') -{ 0 }-> 1 :|: z' >= 0, z = 0 a__fst(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 a__fst(z, z') -{ 0 }-> 1 + z + z' :|: z' >= 0, z >= 0 a__fst(z, z') -{ 0 }-> 1 + mark(z1) + (1 + (z - 1) + z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 a__len(z) -{ 0 }-> 0 :|: z = 1 a__len(z) -{ 0 }-> 0 :|: z >= 0 a__len(z) -{ 0 }-> 1 + z :|: z >= 0 a__len(z) -{ 0 }-> 1 + (1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__len(a__len(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__len(a__fst(mark(z0371), mark(z1185))) :|: z = 1 + (1 + z0371 + z1185), z0371 >= 0, z1185 >= 0 mark(z) -{ 0 }-> a__len(a__from(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__len(a__add(mark(z0373), mark(z1186))) :|: z1186 >= 0, z = 1 + (1 + z0373 + z1186), z0373 >= 0 mark(z) -{ 0 }-> a__len(1 + mark(z0376) + z1187) :|: z0376 >= 0, z1187 >= 0, z = 1 + (1 + z0376 + z1187) mark(z) -{ 0 }-> a__fst(mark(z0), mark(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__from(a__len(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__from(a__fst(mark(z0305), mark(z1152))) :|: z = 1 + (1 + z0305 + z1152), z0305 >= 0, z1152 >= 0 mark(z) -{ 0 }-> a__from(a__from(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__from(a__add(mark(z0307), mark(z1153))) :|: z0307 >= 0, z1153 >= 0, z = 1 + (1 + z0307 + z1153) 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 + (z - 2)) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__from(1 + mark(z0310) + z1154) :|: z0310 >= 0, z1154 >= 0, z = 1 + (1 + z0310 + z1154) mark(z) -{ 0 }-> a__add(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 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 mark(z) -{ 0 }-> 0 :|: z - 2 >= 0, v0 >= 0, 1 + (z - 2) = v0 mark(z) -{ 0 }-> 0 :|: z - 2 >= 0, 1 + (z - 2) = 1 mark(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 mark(z) -{ 0 }-> 0 :|: z = 1 + 1, 1 = 1 mark(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 mark(z) -{ 0 }-> 1 + z0 :|: z = 1 + 0, 0 = z0, z0 >= 0 mark(z) -{ 0 }-> 1 + z0 :|: z - 2 >= 0, 1 + (z - 2) = z0, z0 >= 0 mark(z) -{ 0 }-> 1 + z0 :|: z = 1 + 1, 1 = z0, z0 >= 0 mark(z) -{ 0 }-> 1 + z0' :|: z - 1 >= 0, 0 = z0', z0' >= 0 mark(z) -{ 0 }-> 1 + (z - 1) :|: z - 1 >= 0 mark(z) -{ 0 }-> 1 + (1 + z1) :|: z - 2 >= 0, z1 >= 0, z0 >= 0, 1 + (z - 2) = 1 + z0 + z1 mark(z) -{ 0 }-> 1 + (1 + z1) :|: z = 1 + 1, z1 >= 0, z0 >= 0, 1 = 1 + z0 + z1 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__fst(v0, v1) -> null_a__fst [0] a__from(v0) -> null_a__from [0] a__add(v0, v1) -> null_a__add [0] a__len(v0) -> null_a__len [0] mark(v0) -> null_mark [0] A__FST(v0, v1) -> null_A__FST [0] A__ADD(v0, v1) -> null_A__ADD [0] MARK(v0) -> null_MARK [0] And the following fresh constants: null_a__fst, null_a__from, null_a__add, null_a__len, null_mark, null_A__FST, null_A__ADD, 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__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) [1] A__FROM(z0) -> c3(MARK(z0)) [1] A__ADD(0, z0) -> c5(MARK(z0)) [1] MARK(fst(z0, z1)) -> c11(A__FST(mark(z0), mark(z1)), MARK(z0)) [1] MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) [1] MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) [1] MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) [1] MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) [1] MARK(cons(z0, z1)) -> c20(MARK(z0)) [1] MARK(len(z0)) -> c16(MARK(z0)) [1] a__fst(0, z0) -> nil [0] a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) [0] a__fst(z0, z1) -> fst(z0, z1) [0] a__from(z0) -> cons(mark(z0), from(s(z0))) [0] a__from(z0) -> from(z0) [0] a__add(0, z0) -> mark(z0) [0] a__add(s(z0), z1) -> s(add(z0, z1)) [0] a__add(z0, z1) -> add(z0, z1) [0] a__len(nil) -> 0 [0] a__len(cons(z0, z1)) -> s(len(z1)) [0] a__len(z0) -> len(z0) [0] mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) [0] mark(from(z0)) -> a__from(mark(z0)) [0] mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) [0] mark(len(z0)) -> a__len(mark(z0)) [0] mark(0) -> 0 [0] mark(s(z0)) -> s(z0) [0] mark(nil) -> nil [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] a__fst(v0, v1) -> null_a__fst [0] a__from(v0) -> null_a__from [0] a__add(v0, v1) -> null_a__add [0] a__len(v0) -> null_a__len [0] mark(v0) -> null_mark [0] A__FST(v0, v1) -> null_A__FST [0] A__ADD(v0, v1) -> null_A__ADD [0] MARK(v0) -> null_MARK [0] The TRS has the following type information: A__FST :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> c1:null_A__FST s :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark cons :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark c1 :: c11:c12:c13:c14:c15:c20:c16:null_MARK -> c1:null_A__FST MARK :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> c11:c12:c13:c14:c15:c20:c16:null_MARK A__FROM :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> c3 c3 :: c11:c12:c13:c14:c15:c20:c16:null_MARK -> c3 A__ADD :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> c5:null_A__ADD 0 :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark c5 :: c11:c12:c13:c14:c15:c20:c16:null_MARK -> c5:null_A__ADD fst :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark c11 :: c1:null_A__FST -> c11:c12:c13:c14:c15:c20:c16:null_MARK -> c11:c12:c13:c14:c15:c20:c16:null_MARK mark :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark c12 :: c1:null_A__FST -> c11:c12:c13:c14:c15:c20:c16:null_MARK -> c11:c12:c13:c14:c15:c20:c16:null_MARK from :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark c13 :: c3 -> c11:c12:c13:c14:c15:c20:c16:null_MARK -> c11:c12:c13:c14:c15:c20:c16:null_MARK add :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark c14 :: c5:null_A__ADD -> c11:c12:c13:c14:c15:c20:c16:null_MARK -> c11:c12:c13:c14:c15:c20:c16:null_MARK c15 :: c5:null_A__ADD -> c11:c12:c13:c14:c15:c20:c16:null_MARK -> c11:c12:c13:c14:c15:c20:c16:null_MARK c20 :: c11:c12:c13:c14:c15:c20:c16:null_MARK -> c11:c12:c13:c14:c15:c20:c16:null_MARK len :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark c16 :: c11:c12:c13:c14:c15:c20:c16:null_MARK -> c11:c12:c13:c14:c15:c20:c16:null_MARK a__fst :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark nil :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark a__from :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark a__add :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark a__len :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark -> s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark null_a__fst :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark null_a__from :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark null_a__add :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark null_a__len :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark null_mark :: s:cons:0:fst:from:add:len:nil:null_a__fst:null_a__from:null_a__add:null_a__len:null_mark null_A__FST :: c1:null_A__FST null_A__ADD :: c5:null_A__ADD null_MARK :: c11:c12:c13:c14:c15:c20:c16: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__fst => 0 null_a__from => 0 null_a__add => 0 null_a__len => 0 null_mark => 0 null_A__FST => 0 null_A__ADD => 0 null_MARK => 0 const => 0 ---------------------------------------- (62) Obligation: Complexity RNTS consisting of the following rules: A__ADD(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 A__ADD(z, z') -{ 1 }-> 1 + MARK(z0) :|: z0 >= 0, z = 0, z' = z0 A__FROM(z) -{ 1 }-> 1 + MARK(z0) :|: z = z0, z0 >= 0 A__FST(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 A__FST(z, z') -{ 1 }-> 1 + MARK(z1) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 MARK(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 MARK(z) -{ 1 }-> 1 + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + MARK(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__FST(mark(z0), mark(z1)) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__FST(mark(z0), mark(z1)) + MARK(z1) :|: 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__ADD(mark(z0), mark(z1)) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__ADD(mark(z0), mark(z1)) + MARK(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__add(z, z') -{ 0 }-> mark(z0) :|: z0 >= 0, z = 0, z' = z0 a__add(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__add(z, z') -{ 0 }-> 1 + (1 + z0 + z1) :|: z1 >= 0, z = 1 + z0, z' = z1, z0 >= 0 a__add(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 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 a__fst(z, z') -{ 0 }-> 1 :|: z0 >= 0, z = 0, z' = z0 a__fst(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__fst(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 a__fst(z, z') -{ 0 }-> 1 + mark(z1) + (1 + z0 + z2) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 a__len(z) -{ 0 }-> 0 :|: z = 1 a__len(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__len(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__len(z) -{ 0 }-> 1 + (1 + z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__len(mark(z0)) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__fst(mark(z0), mark(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__from(mark(z0)) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__add(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 + 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(fst(z0, z1)) -> c11(A__FST(mark(z0), mark(z1)), MARK(z0)) by MARK(fst(x0, fst(z0, z1))) -> c11(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, from(z0))) -> c11(A__FST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, 0)) -> c11(A__FST(mark(x0), 0), MARK(x0)) MARK(fst(x0, s(z0))) -> c11(A__FST(mark(x0), s(z0)), MARK(x0)) MARK(fst(x0, nil)) -> c11(A__FST(mark(x0), nil), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(0, x1)) -> c11(A__FST(0, mark(x1)), MARK(0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1)), MARK(s(z0))) MARK(fst(nil, x1)) -> c11(A__FST(nil, mark(x1)), MARK(nil)) MARK(fst(cons(z0, z1), x1)) -> c11(A__FST(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) ---------------------------------------- (64) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, fst(z0, z1))) -> c11(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, from(z0))) -> c11(A__FST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, 0)) -> c11(A__FST(mark(x0), 0), MARK(x0)) MARK(fst(x0, s(z0))) -> c11(A__FST(mark(x0), s(z0)), MARK(x0)) MARK(fst(x0, nil)) -> c11(A__FST(mark(x0), nil), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(0, x1)) -> c11(A__FST(0, mark(x1)), MARK(0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1)), MARK(s(z0))) MARK(fst(nil, x1)) -> c11(A__FST(nil, mark(x1)), MARK(nil)) MARK(fst(cons(z0, z1), x1)) -> c11(A__FST(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, fst(z0, z1))) -> c11(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, from(z0))) -> c11(A__FST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, 0)) -> c11(A__FST(mark(x0), 0), MARK(x0)) MARK(fst(x0, s(z0))) -> c11(A__FST(mark(x0), s(z0)), MARK(x0)) MARK(fst(x0, nil)) -> c11(A__FST(mark(x0), nil), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(0, x1)) -> c11(A__FST(0, mark(x1)), MARK(0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1)), MARK(s(z0))) MARK(fst(nil, x1)) -> c11(A__FST(nil, mark(x1)), MARK(nil)) MARK(fst(cons(z0, z1), x1)) -> c11(A__FST(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c12_2, c13_2, c14_2, c15_2, c20_1, c16_1, c11_2 ---------------------------------------- (65) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(fst(nil, x1)) -> c11(A__FST(nil, mark(x1)), MARK(nil)) MARK(fst(0, x1)) -> c11(A__FST(0, mark(x1)), MARK(0)) ---------------------------------------- (66) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, fst(z0, z1))) -> c11(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, from(z0))) -> c11(A__FST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, 0)) -> c11(A__FST(mark(x0), 0), MARK(x0)) MARK(fst(x0, s(z0))) -> c11(A__FST(mark(x0), s(z0)), MARK(x0)) MARK(fst(x0, nil)) -> c11(A__FST(mark(x0), nil), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1)), MARK(s(z0))) MARK(fst(cons(z0, z1), x1)) -> c11(A__FST(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, fst(z0, z1))) -> c11(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, from(z0))) -> c11(A__FST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, 0)) -> c11(A__FST(mark(x0), 0), MARK(x0)) MARK(fst(x0, s(z0))) -> c11(A__FST(mark(x0), s(z0)), MARK(x0)) MARK(fst(x0, nil)) -> c11(A__FST(mark(x0), nil), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1)), MARK(s(z0))) MARK(fst(cons(z0, z1), x1)) -> c11(A__FST(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c12_2, c13_2, c14_2, c15_2, c20_1, c16_1, c11_2 ---------------------------------------- (67) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 5 trailing tuple parts ---------------------------------------- (68) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, fst(z0, z1))) -> c11(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, from(z0))) -> c11(A__FST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, fst(z0, z1))) -> c11(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, from(z0))) -> c11(A__FST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c12_2, c13_2, c14_2, c15_2, c20_1, c16_1, c11_2, c11_1 ---------------------------------------- (69) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(fst(z0, z1)) -> c12(A__FST(mark(z0), mark(z1)), MARK(z1)) by MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, 0)) -> c12(A__FST(mark(x0), 0), MARK(0)) MARK(fst(x0, s(z0))) -> c12(A__FST(mark(x0), s(z0)), MARK(s(z0))) MARK(fst(x0, nil)) -> c12(A__FST(mark(x0), nil), MARK(nil)) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(A__FST(0, mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(nil, x1)) -> c12(A__FST(nil, mark(x1)), MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(A__FST(cons(mark(z0), z1), mark(x1)), MARK(x1)) ---------------------------------------- (70) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, fst(z0, z1))) -> c11(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, from(z0))) -> c11(A__FST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, 0)) -> c12(A__FST(mark(x0), 0), MARK(0)) MARK(fst(x0, s(z0))) -> c12(A__FST(mark(x0), s(z0)), MARK(s(z0))) MARK(fst(x0, nil)) -> c12(A__FST(mark(x0), nil), MARK(nil)) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(A__FST(0, mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(nil, x1)) -> c12(A__FST(nil, mark(x1)), MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(A__FST(cons(mark(z0), z1), mark(x1)), MARK(x1)) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, fst(z0, z1))) -> c11(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, from(z0))) -> c11(A__FST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, 0)) -> c12(A__FST(mark(x0), 0), MARK(0)) MARK(fst(x0, s(z0))) -> c12(A__FST(mark(x0), s(z0)), MARK(s(z0))) MARK(fst(x0, nil)) -> c12(A__FST(mark(x0), nil), MARK(nil)) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(A__FST(0, mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(nil, x1)) -> c12(A__FST(nil, mark(x1)), MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(A__FST(cons(mark(z0), z1), mark(x1)), MARK(x1)) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c14_2, c15_2, c20_1, c16_1, c11_2, c11_1, c12_2 ---------------------------------------- (71) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: MARK(fst(x0, 0)) -> c12(A__FST(mark(x0), 0), MARK(0)) MARK(fst(x0, s(z0))) -> c12(A__FST(mark(x0), s(z0)), MARK(s(z0))) MARK(fst(x0, nil)) -> c12(A__FST(mark(x0), nil), MARK(nil)) ---------------------------------------- (72) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, fst(z0, z1))) -> c11(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, from(z0))) -> c11(A__FST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(A__FST(0, mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(nil, x1)) -> c12(A__FST(nil, mark(x1)), MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(A__FST(cons(mark(z0), z1), mark(x1)), MARK(x1)) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, fst(z0, z1))) -> c11(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, from(z0))) -> c11(A__FST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(A__FST(0, mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(nil, x1)) -> c12(A__FST(nil, mark(x1)), MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(A__FST(cons(mark(z0), z1), mark(x1)), MARK(x1)) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c14_2, c15_2, c20_1, c16_1, c11_2, c11_1, c12_2 ---------------------------------------- (73) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (74) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, fst(z0, z1))) -> c11(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, from(z0))) -> c11(A__FST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, fst(z0, z1))) -> c11(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, from(z0))) -> c11(A__FST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c14_2, c15_2, c20_1, c16_1, c11_2, c11_1, c12_2, c12_1 ---------------------------------------- (75) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(add(z0, z1)) -> c14(A__ADD(mark(z0), mark(z1)), MARK(z0)) by MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1)), MARK(0)) MARK(add(s(z0), x1)) -> c14(A__ADD(s(z0), mark(x1)), MARK(s(z0))) MARK(add(nil, x1)) -> c14(A__ADD(nil, mark(x1)), MARK(nil)) MARK(add(cons(z0, z1), x1)) -> c14(A__ADD(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) ---------------------------------------- (76) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, fst(z0, z1))) -> c11(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, from(z0))) -> c11(A__FST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1)), MARK(0)) MARK(add(s(z0), x1)) -> c14(A__ADD(s(z0), mark(x1)), MARK(s(z0))) MARK(add(nil, x1)) -> c14(A__ADD(nil, mark(x1)), MARK(nil)) MARK(add(cons(z0, z1), x1)) -> c14(A__ADD(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, fst(z0, z1))) -> c11(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, from(z0))) -> c11(A__FST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1)), MARK(0)) MARK(add(s(z0), x1)) -> c14(A__ADD(s(z0), mark(x1)), MARK(s(z0))) MARK(add(nil, x1)) -> c14(A__ADD(nil, mark(x1)), MARK(nil)) MARK(add(cons(z0, z1), x1)) -> c14(A__ADD(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c15_2, c20_1, c16_1, c11_2, c11_1, c12_2, c12_1, c14_2 ---------------------------------------- (77) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(add(nil, x1)) -> c14(A__ADD(nil, mark(x1)), MARK(nil)) MARK(add(s(z0), x1)) -> c14(A__ADD(s(z0), mark(x1)), MARK(s(z0))) ---------------------------------------- (78) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, fst(z0, z1))) -> c11(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, from(z0))) -> c11(A__FST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1)), MARK(0)) MARK(add(cons(z0, z1), x1)) -> c14(A__ADD(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, fst(z0, z1))) -> c11(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, from(z0))) -> c11(A__FST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1)), MARK(0)) MARK(add(cons(z0, z1), x1)) -> c14(A__ADD(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c15_2, c20_1, c16_1, c11_2, c11_1, c12_2, c12_1, c14_2 ---------------------------------------- (79) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (80) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, fst(z0, z1))) -> c11(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, from(z0))) -> c11(A__FST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, fst(z0, z1))) -> c11(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, from(z0))) -> c11(A__FST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c15_2, c20_1, c16_1, c11_2, c11_1, c12_2, c12_1, c14_2, c14_1 ---------------------------------------- (81) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(add(z0, z1)) -> c15(A__ADD(mark(z0), mark(z1)), MARK(z1)) by MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0), MARK(0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0)), MARK(s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil), MARK(nil)) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c15(A__ADD(s(z0), mark(x1)), MARK(x1)) MARK(add(nil, x1)) -> c15(A__ADD(nil, mark(x1)), MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(A__ADD(cons(mark(z0), z1), mark(x1)), MARK(x1)) ---------------------------------------- (82) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, fst(z0, z1))) -> c11(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, from(z0))) -> c11(A__FST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0), MARK(0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0)), MARK(s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil), MARK(nil)) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c15(A__ADD(s(z0), mark(x1)), MARK(x1)) MARK(add(nil, x1)) -> c15(A__ADD(nil, mark(x1)), MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(A__ADD(cons(mark(z0), z1), mark(x1)), MARK(x1)) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, fst(z0, z1))) -> c11(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, from(z0))) -> c11(A__FST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0), MARK(0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0)), MARK(s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil), MARK(nil)) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c15(A__ADD(s(z0), mark(x1)), MARK(x1)) MARK(add(nil, x1)) -> c15(A__ADD(nil, mark(x1)), MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(A__ADD(cons(mark(z0), z1), mark(x1)), MARK(x1)) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_2, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2 ---------------------------------------- (83) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 6 trailing tuple parts ---------------------------------------- (84) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, fst(z0, z1))) -> c11(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, from(z0))) -> c11(A__FST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, fst(z0, z1))) -> c11(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, from(z0))) -> c11(A__FST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_2, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1 ---------------------------------------- (85) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(fst(x0, fst(z0, z1))) -> c11(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) by MARK(fst(x0, fst(x1, x2))) -> c11(A__FST(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(0, fst(x1, x2))) -> c11(A__FST(0, a__fst(mark(x1), mark(x2))), MARK(0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(s(z0))) MARK(fst(nil, fst(x1, x2))) -> c11(A__FST(nil, a__fst(mark(x1), mark(x2))), MARK(nil)) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(A__FST(cons(mark(z0), z1), a__fst(mark(x1), mark(x2))), MARK(cons(z0, z1))) ---------------------------------------- (86) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, from(z0))) -> c11(A__FST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, x2))) -> c11(A__FST(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(0, fst(x1, x2))) -> c11(A__FST(0, a__fst(mark(x1), mark(x2))), MARK(0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(s(z0))) MARK(fst(nil, fst(x1, x2))) -> c11(A__FST(nil, a__fst(mark(x1), mark(x2))), MARK(nil)) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(A__FST(cons(mark(z0), z1), a__fst(mark(x1), mark(x2))), MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, from(z0))) -> c11(A__FST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, x2))) -> c11(A__FST(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(0, fst(x1, x2))) -> c11(A__FST(0, a__fst(mark(x1), mark(x2))), MARK(0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(s(z0))) MARK(fst(nil, fst(x1, x2))) -> c11(A__FST(nil, a__fst(mark(x1), mark(x2))), MARK(nil)) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(A__FST(cons(mark(z0), z1), a__fst(mark(x1), mark(x2))), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_2, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1 ---------------------------------------- (87) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(fst(nil, fst(x1, x2))) -> c11(A__FST(nil, a__fst(mark(x1), mark(x2))), MARK(nil)) MARK(fst(0, fst(x1, x2))) -> c11(A__FST(0, a__fst(mark(x1), mark(x2))), MARK(0)) ---------------------------------------- (88) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, from(z0))) -> c11(A__FST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, x2))) -> c11(A__FST(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(s(z0))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(A__FST(cons(mark(z0), z1), a__fst(mark(x1), mark(x2))), MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, from(z0))) -> c11(A__FST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, x2))) -> c11(A__FST(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(s(z0))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(A__FST(cons(mark(z0), z1), a__fst(mark(x1), mark(x2))), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_2, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1 ---------------------------------------- (89) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (90) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, from(z0))) -> c11(A__FST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, from(z0))) -> c11(A__FST(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_2, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1 ---------------------------------------- (91) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(fst(x0, from(z0))) -> c11(A__FST(mark(x0), a__from(mark(z0))), MARK(x0)) by MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), from(mark(x1))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(0, from(x1))) -> c11(A__FST(0, a__from(mark(x1))), MARK(0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1))), MARK(s(z0))) MARK(fst(nil, from(x1))) -> c11(A__FST(nil, a__from(mark(x1))), MARK(nil)) MARK(fst(cons(z0, z1), from(x1))) -> c11(A__FST(cons(mark(z0), z1), a__from(mark(x1))), MARK(cons(z0, z1))) ---------------------------------------- (92) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), from(mark(x1))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(0, from(x1))) -> c11(A__FST(0, a__from(mark(x1))), MARK(0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1))), MARK(s(z0))) MARK(fst(nil, from(x1))) -> c11(A__FST(nil, a__from(mark(x1))), MARK(nil)) MARK(fst(cons(z0, z1), from(x1))) -> c11(A__FST(cons(mark(z0), z1), a__from(mark(x1))), MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), from(mark(x1))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(0, from(x1))) -> c11(A__FST(0, a__from(mark(x1))), MARK(0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1))), MARK(s(z0))) MARK(fst(nil, from(x1))) -> c11(A__FST(nil, a__from(mark(x1))), MARK(nil)) MARK(fst(cons(z0, z1), from(x1))) -> c11(A__FST(cons(mark(z0), z1), a__from(mark(x1))), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_2, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1 ---------------------------------------- (93) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(fst(0, from(x1))) -> c11(A__FST(0, a__from(mark(x1))), MARK(0)) MARK(fst(nil, from(x1))) -> c11(A__FST(nil, a__from(mark(x1))), MARK(nil)) ---------------------------------------- (94) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), from(mark(x1))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1))), MARK(s(z0))) MARK(fst(cons(z0, z1), from(x1))) -> c11(A__FST(cons(mark(z0), z1), a__from(mark(x1))), MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), from(mark(x1))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1))), MARK(s(z0))) MARK(fst(cons(z0, z1), from(x1))) -> c11(A__FST(cons(mark(z0), z1), a__from(mark(x1))), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_2, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1 ---------------------------------------- (95) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (96) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_2, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1 ---------------------------------------- (97) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(fst(x0, add(z0, z1))) -> c11(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) by MARK(fst(x0, add(x1, x2))) -> c11(A__FST(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(0, add(x1, x2))) -> c11(A__FST(0, a__add(mark(x1), mark(x2))), MARK(0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(s(z0))) MARK(fst(nil, add(x1, x2))) -> c11(A__FST(nil, a__add(mark(x1), mark(x2))), MARK(nil)) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(A__FST(cons(mark(z0), z1), a__add(mark(x1), mark(x2))), MARK(cons(z0, z1))) ---------------------------------------- (98) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, x2))) -> c11(A__FST(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(0, add(x1, x2))) -> c11(A__FST(0, a__add(mark(x1), mark(x2))), MARK(0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(s(z0))) MARK(fst(nil, add(x1, x2))) -> c11(A__FST(nil, a__add(mark(x1), mark(x2))), MARK(nil)) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(A__FST(cons(mark(z0), z1), a__add(mark(x1), mark(x2))), MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, x2))) -> c11(A__FST(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(0, add(x1, x2))) -> c11(A__FST(0, a__add(mark(x1), mark(x2))), MARK(0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(s(z0))) MARK(fst(nil, add(x1, x2))) -> c11(A__FST(nil, a__add(mark(x1), mark(x2))), MARK(nil)) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(A__FST(cons(mark(z0), z1), a__add(mark(x1), mark(x2))), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_2, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1 ---------------------------------------- (99) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(fst(0, add(x1, x2))) -> c11(A__FST(0, a__add(mark(x1), mark(x2))), MARK(0)) MARK(fst(nil, add(x1, x2))) -> c11(A__FST(nil, a__add(mark(x1), mark(x2))), MARK(nil)) ---------------------------------------- (100) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, x2))) -> c11(A__FST(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(s(z0))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(A__FST(cons(mark(z0), z1), a__add(mark(x1), mark(x2))), MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, x2))) -> c11(A__FST(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(s(z0))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(A__FST(cons(mark(z0), z1), a__add(mark(x1), mark(x2))), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_2, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1 ---------------------------------------- (101) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (102) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_2, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1 ---------------------------------------- (103) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(fst(x0, len(z0))) -> c11(A__FST(mark(x0), a__len(mark(z0))), MARK(x0)) by MARK(fst(x0, len(x1))) -> c11(A__FST(mark(x0), len(mark(x1))), MARK(x0)) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(0, len(x1))) -> c11(A__FST(0, a__len(mark(x1))), MARK(0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1))), MARK(s(z0))) MARK(fst(nil, len(x1))) -> c11(A__FST(nil, a__len(mark(x1))), MARK(nil)) MARK(fst(cons(z0, z1), len(x1))) -> c11(A__FST(cons(mark(z0), z1), a__len(mark(x1))), MARK(cons(z0, z1))) ---------------------------------------- (104) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(x1))) -> c11(A__FST(mark(x0), len(mark(x1))), MARK(x0)) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(0, len(x1))) -> c11(A__FST(0, a__len(mark(x1))), MARK(0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1))), MARK(s(z0))) MARK(fst(nil, len(x1))) -> c11(A__FST(nil, a__len(mark(x1))), MARK(nil)) MARK(fst(cons(z0, z1), len(x1))) -> c11(A__FST(cons(mark(z0), z1), a__len(mark(x1))), MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(x1))) -> c11(A__FST(mark(x0), len(mark(x1))), MARK(x0)) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(0, len(x1))) -> c11(A__FST(0, a__len(mark(x1))), MARK(0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1))), MARK(s(z0))) MARK(fst(nil, len(x1))) -> c11(A__FST(nil, a__len(mark(x1))), MARK(nil)) MARK(fst(cons(z0, z1), len(x1))) -> c11(A__FST(cons(mark(z0), z1), a__len(mark(x1))), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_2, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1 ---------------------------------------- (105) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(fst(nil, len(x1))) -> c11(A__FST(nil, a__len(mark(x1))), MARK(nil)) MARK(fst(0, len(x1))) -> c11(A__FST(0, a__len(mark(x1))), MARK(0)) ---------------------------------------- (106) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(x1))) -> c11(A__FST(mark(x0), len(mark(x1))), MARK(x0)) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1))), MARK(s(z0))) MARK(fst(cons(z0, z1), len(x1))) -> c11(A__FST(cons(mark(z0), z1), a__len(mark(x1))), MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(x1))) -> c11(A__FST(mark(x0), len(mark(x1))), MARK(x0)) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1))), MARK(s(z0))) MARK(fst(cons(z0, z1), len(x1))) -> c11(A__FST(cons(mark(z0), z1), a__len(mark(x1))), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_2, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1 ---------------------------------------- (107) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (108) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_2, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1 ---------------------------------------- (109) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(fst(x0, cons(z0, z1))) -> c11(A__FST(mark(x0), cons(mark(z0), z1)), MARK(x0)) by MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(0, cons(x1, x2))) -> c11(A__FST(0, cons(mark(x1), x2)), MARK(0)) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2)), MARK(s(z0))) MARK(fst(nil, cons(x1, x2))) -> c11(A__FST(nil, cons(mark(x1), x2)), MARK(nil)) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(A__FST(cons(mark(z0), z1), cons(mark(x1), x2)), MARK(cons(z0, z1))) ---------------------------------------- (110) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(0, cons(x1, x2))) -> c11(A__FST(0, cons(mark(x1), x2)), MARK(0)) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2)), MARK(s(z0))) MARK(fst(nil, cons(x1, x2))) -> c11(A__FST(nil, cons(mark(x1), x2)), MARK(nil)) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(A__FST(cons(mark(z0), z1), cons(mark(x1), x2)), MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(0, cons(x1, x2))) -> c11(A__FST(0, cons(mark(x1), x2)), MARK(0)) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2)), MARK(s(z0))) MARK(fst(nil, cons(x1, x2))) -> c11(A__FST(nil, cons(mark(x1), x2)), MARK(nil)) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(A__FST(cons(mark(z0), z1), cons(mark(x1), x2)), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_2, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1 ---------------------------------------- (111) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(fst(nil, cons(x1, x2))) -> c11(A__FST(nil, cons(mark(x1), x2)), MARK(nil)) MARK(fst(0, cons(x1, x2))) -> c11(A__FST(0, cons(mark(x1), x2)), MARK(0)) ---------------------------------------- (112) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2)), MARK(s(z0))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(A__FST(cons(mark(z0), z1), cons(mark(x1), x2)), MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2)), MARK(s(z0))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(A__FST(cons(mark(z0), z1), cons(mark(x1), x2)), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_2, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1 ---------------------------------------- (113) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (114) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_2, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1 ---------------------------------------- (115) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(fst(fst(z0, z1), x1)) -> c11(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) by MARK(fst(fst(x0, x1), fst(z0, z1))) -> c11(A__FST(a__fst(mark(x0), mark(x1)), a__fst(mark(z0), mark(z1))), MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), from(z0))) -> c11(A__FST(a__fst(mark(x0), mark(x1)), a__from(mark(z0))), MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), add(z0, z1))) -> c11(A__FST(a__fst(mark(x0), mark(x1)), a__add(mark(z0), mark(z1))), MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), len(z0))) -> c11(A__FST(a__fst(mark(x0), mark(x1)), a__len(mark(z0))), MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), 0)) -> c11(A__FST(a__fst(mark(x0), mark(x1)), 0), MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(A__FST(a__fst(mark(x0), mark(x1)), s(z0)), MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(A__FST(a__fst(mark(x0), mark(x1)), nil), MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), cons(z0, z1))) -> c11(A__FST(a__fst(mark(x0), mark(x1)), cons(mark(z0), z1)), MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(A__FST(fst(mark(x0), mark(x1)), mark(x2)), MARK(fst(x0, x1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) ---------------------------------------- (116) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, x1), 0)) -> c11(A__FST(a__fst(mark(x0), mark(x1)), 0), MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(A__FST(a__fst(mark(x0), mark(x1)), s(z0)), MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(A__FST(a__fst(mark(x0), mark(x1)), nil), MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(A__FST(fst(mark(x0), mark(x1)), mark(x2)), MARK(fst(x0, x1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, x1), 0)) -> c11(A__FST(a__fst(mark(x0), mark(x1)), 0), MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(A__FST(a__fst(mark(x0), mark(x1)), s(z0)), MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(A__FST(a__fst(mark(x0), mark(x1)), nil), MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(A__FST(fst(mark(x0), mark(x1)), mark(x2)), MARK(fst(x0, x1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_2, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1 ---------------------------------------- (117) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (118) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_2, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1 ---------------------------------------- (119) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(fst(from(z0), x1)) -> c11(A__FST(a__from(mark(z0)), mark(x1)), MARK(from(z0))) by MARK(fst(from(x0), fst(z0, z1))) -> c11(A__FST(a__from(mark(x0)), a__fst(mark(z0), mark(z1))), MARK(from(x0))) MARK(fst(from(x0), from(z0))) -> c11(A__FST(a__from(mark(x0)), a__from(mark(z0))), MARK(from(x0))) MARK(fst(from(x0), add(z0, z1))) -> c11(A__FST(a__from(mark(x0)), a__add(mark(z0), mark(z1))), MARK(from(x0))) MARK(fst(from(x0), len(z0))) -> c11(A__FST(a__from(mark(x0)), a__len(mark(z0))), MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(A__FST(a__from(mark(x0)), 0), MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(A__FST(a__from(mark(x0)), s(z0)), MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(A__FST(a__from(mark(x0)), nil), MARK(from(x0))) MARK(fst(from(x0), cons(z0, z1))) -> c11(A__FST(a__from(mark(x0)), cons(mark(z0), z1)), MARK(from(x0))) MARK(fst(from(x0), x1)) -> c11(A__FST(cons(mark(mark(x0)), from(s(mark(x0)))), mark(x1)), MARK(from(x0))) MARK(fst(from(x0), x1)) -> c11(A__FST(from(mark(x0)), mark(x1)), MARK(from(x0))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) ---------------------------------------- (120) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(x0), 0)) -> c11(A__FST(a__from(mark(x0)), 0), MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(A__FST(a__from(mark(x0)), s(z0)), MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(A__FST(a__from(mark(x0)), nil), MARK(from(x0))) MARK(fst(from(x0), x1)) -> c11(A__FST(cons(mark(mark(x0)), from(s(mark(x0)))), mark(x1)), MARK(from(x0))) MARK(fst(from(x0), x1)) -> c11(A__FST(from(mark(x0)), mark(x1)), MARK(from(x0))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(x0), 0)) -> c11(A__FST(a__from(mark(x0)), 0), MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(A__FST(a__from(mark(x0)), s(z0)), MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(A__FST(a__from(mark(x0)), nil), MARK(from(x0))) MARK(fst(from(x0), x1)) -> c11(A__FST(cons(mark(mark(x0)), from(s(mark(x0)))), mark(x1)), MARK(from(x0))) MARK(fst(from(x0), x1)) -> c11(A__FST(from(mark(x0)), mark(x1)), MARK(from(x0))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_2, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1 ---------------------------------------- (121) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 5 trailing tuple parts ---------------------------------------- (122) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_2, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1 ---------------------------------------- (123) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(fst(add(z0, z1), x1)) -> c11(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) by MARK(fst(add(x0, x1), fst(z0, z1))) -> c11(A__FST(a__add(mark(x0), mark(x1)), a__fst(mark(z0), mark(z1))), MARK(add(x0, x1))) MARK(fst(add(x0, x1), from(z0))) -> c11(A__FST(a__add(mark(x0), mark(x1)), a__from(mark(z0))), MARK(add(x0, x1))) MARK(fst(add(x0, x1), add(z0, z1))) -> c11(A__FST(a__add(mark(x0), mark(x1)), a__add(mark(z0), mark(z1))), MARK(add(x0, x1))) MARK(fst(add(x0, x1), len(z0))) -> c11(A__FST(a__add(mark(x0), mark(x1)), a__len(mark(z0))), MARK(add(x0, x1))) MARK(fst(add(x0, x1), 0)) -> c11(A__FST(a__add(mark(x0), mark(x1)), 0), MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(A__FST(a__add(mark(x0), mark(x1)), s(z0)), MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(A__FST(a__add(mark(x0), mark(x1)), nil), MARK(add(x0, x1))) MARK(fst(add(x0, x1), cons(z0, z1))) -> c11(A__FST(a__add(mark(x0), mark(x1)), cons(mark(z0), z1)), MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(A__FST(add(mark(x0), mark(x1)), mark(x2)), MARK(add(x0, x1))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) ---------------------------------------- (124) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, x1), 0)) -> c11(A__FST(a__add(mark(x0), mark(x1)), 0), MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(A__FST(a__add(mark(x0), mark(x1)), s(z0)), MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(A__FST(a__add(mark(x0), mark(x1)), nil), MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(A__FST(add(mark(x0), mark(x1)), mark(x2)), MARK(add(x0, x1))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, x1), 0)) -> c11(A__FST(a__add(mark(x0), mark(x1)), 0), MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(A__FST(a__add(mark(x0), mark(x1)), s(z0)), MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(A__FST(a__add(mark(x0), mark(x1)), nil), MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(A__FST(add(mark(x0), mark(x1)), mark(x2)), MARK(add(x0, x1))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_2, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1 ---------------------------------------- (125) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (126) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_2, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1 ---------------------------------------- (127) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(fst(len(z0), x1)) -> c11(A__FST(a__len(mark(z0)), mark(x1)), MARK(len(z0))) by MARK(fst(len(x0), fst(z0, z1))) -> c11(A__FST(a__len(mark(x0)), a__fst(mark(z0), mark(z1))), MARK(len(x0))) MARK(fst(len(x0), from(z0))) -> c11(A__FST(a__len(mark(x0)), a__from(mark(z0))), MARK(len(x0))) MARK(fst(len(x0), add(z0, z1))) -> c11(A__FST(a__len(mark(x0)), a__add(mark(z0), mark(z1))), MARK(len(x0))) MARK(fst(len(x0), len(z0))) -> c11(A__FST(a__len(mark(x0)), a__len(mark(z0))), MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(A__FST(a__len(mark(x0)), 0), MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(A__FST(a__len(mark(x0)), s(z0)), MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(A__FST(a__len(mark(x0)), nil), MARK(len(x0))) MARK(fst(len(x0), cons(z0, z1))) -> c11(A__FST(a__len(mark(x0)), cons(mark(z0), z1)), MARK(len(x0))) MARK(fst(len(x0), x1)) -> c11(A__FST(len(mark(x0)), mark(x1)), MARK(len(x0))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) ---------------------------------------- (128) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(x0), 0)) -> c11(A__FST(a__len(mark(x0)), 0), MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(A__FST(a__len(mark(x0)), s(z0)), MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(A__FST(a__len(mark(x0)), nil), MARK(len(x0))) MARK(fst(len(x0), x1)) -> c11(A__FST(len(mark(x0)), mark(x1)), MARK(len(x0))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(x0), 0)) -> c11(A__FST(a__len(mark(x0)), 0), MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(A__FST(a__len(mark(x0)), s(z0)), MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(A__FST(a__len(mark(x0)), nil), MARK(len(x0))) MARK(fst(len(x0), x1)) -> c11(A__FST(len(mark(x0)), mark(x1)), MARK(len(x0))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2 ---------------------------------------- (129) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (130) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2 ---------------------------------------- (131) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(fst(s(z0), x1)) -> c11(A__FST(s(z0), mark(x1))) by MARK(fst(s(x0), fst(z0, z1))) -> c11(A__FST(s(x0), a__fst(mark(z0), mark(z1)))) MARK(fst(s(x0), from(z0))) -> c11(A__FST(s(x0), a__from(mark(z0)))) MARK(fst(s(x0), add(z0, z1))) -> c11(A__FST(s(x0), a__add(mark(z0), mark(z1)))) MARK(fst(s(x0), len(z0))) -> c11(A__FST(s(x0), a__len(mark(z0)))) MARK(fst(s(x0), 0)) -> c11(A__FST(s(x0), 0)) MARK(fst(s(x0), s(z0))) -> c11(A__FST(s(x0), s(z0))) MARK(fst(s(x0), nil)) -> c11(A__FST(s(x0), nil)) MARK(fst(s(x0), cons(z0, z1))) -> c11(A__FST(s(x0), cons(mark(z0), z1))) ---------------------------------------- (132) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(s(x0), 0)) -> c11(A__FST(s(x0), 0)) MARK(fst(s(x0), s(z0))) -> c11(A__FST(s(x0), s(z0))) MARK(fst(s(x0), nil)) -> c11(A__FST(s(x0), nil)) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(s(x0), 0)) -> c11(A__FST(s(x0), 0)) MARK(fst(s(x0), s(z0))) -> c11(A__FST(s(x0), s(z0))) MARK(fst(s(x0), nil)) -> c11(A__FST(s(x0), nil)) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2 ---------------------------------------- (133) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: MARK(fst(s(x0), 0)) -> c11(A__FST(s(x0), 0)) MARK(fst(s(x0), nil)) -> c11(A__FST(s(x0), nil)) MARK(fst(s(x0), s(z0))) -> c11(A__FST(s(x0), s(z0))) ---------------------------------------- (134) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2 ---------------------------------------- (135) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(fst(x0, fst(z0, z1))) -> c12(A__FST(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) by MARK(fst(x0, fst(x1, x2))) -> c12(A__FST(mark(x0), fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(A__FST(0, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(A__FST(nil, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(A__FST(cons(mark(z0), z1), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) ---------------------------------------- (136) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, x2))) -> c12(A__FST(mark(x0), fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(A__FST(0, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(A__FST(nil, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(A__FST(cons(mark(z0), z1), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, x2))) -> c12(A__FST(mark(x0), fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(A__FST(0, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(A__FST(nil, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(A__FST(cons(mark(z0), z1), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2 ---------------------------------------- (137) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (138) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2 ---------------------------------------- (139) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(fst(x0, from(z0))) -> c12(A__FST(mark(x0), a__from(mark(z0))), MARK(from(z0))) by MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(A__FST(0, a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(A__FST(nil, a__from(mark(x1))), MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(A__FST(cons(mark(z0), z1), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) ---------------------------------------- (140) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(A__FST(0, a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(A__FST(nil, a__from(mark(x1))), MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(A__FST(cons(mark(z0), z1), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(A__FST(0, a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(A__FST(nil, a__from(mark(x1))), MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(A__FST(cons(mark(z0), z1), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2 ---------------------------------------- (141) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (142) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2 ---------------------------------------- (143) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(fst(x0, add(z0, z1))) -> c12(A__FST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) by MARK(fst(x0, add(x1, x2))) -> c12(A__FST(mark(x0), add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(A__FST(0, a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(A__FST(nil, a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(A__FST(cons(mark(z0), z1), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) ---------------------------------------- (144) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, x2))) -> c12(A__FST(mark(x0), add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(A__FST(0, a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(A__FST(nil, a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(A__FST(cons(mark(z0), z1), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, x2))) -> c12(A__FST(mark(x0), add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(A__FST(0, a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(A__FST(nil, a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(A__FST(cons(mark(z0), z1), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2 ---------------------------------------- (145) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (146) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2 ---------------------------------------- (147) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(fst(x0, len(z0))) -> c12(A__FST(mark(x0), a__len(mark(z0))), MARK(len(z0))) by MARK(fst(x0, len(x1))) -> c12(A__FST(mark(x0), len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(A__FST(0, a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(A__FST(nil, a__len(mark(x1))), MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(A__FST(cons(mark(z0), z1), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) ---------------------------------------- (148) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(x1))) -> c12(A__FST(mark(x0), len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(A__FST(0, a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(A__FST(nil, a__len(mark(x1))), MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(A__FST(cons(mark(z0), z1), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(x1))) -> c12(A__FST(mark(x0), len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(A__FST(0, a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(A__FST(nil, a__len(mark(x1))), MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(A__FST(cons(mark(z0), z1), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2 ---------------------------------------- (149) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (150) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2 ---------------------------------------- (151) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(fst(x0, cons(z0, z1))) -> c12(A__FST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) by MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(A__FST(0, cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(A__FST(nil, cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(A__FST(cons(mark(z0), z1), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) ---------------------------------------- (152) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(A__FST(0, cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(A__FST(nil, cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(A__FST(cons(mark(z0), z1), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(A__FST(0, cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(A__FST(nil, cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(A__FST(cons(mark(z0), z1), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2 ---------------------------------------- (153) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (154) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2 ---------------------------------------- (155) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(fst(fst(z0, z1), x1)) -> c12(A__FST(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) by MARK(fst(fst(x0, x1), fst(z0, z1))) -> c12(A__FST(a__fst(mark(x0), mark(x1)), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(fst(x0, x1), from(z0))) -> c12(A__FST(a__fst(mark(x0), mark(x1)), a__from(mark(z0))), MARK(from(z0))) MARK(fst(fst(x0, x1), add(z0, z1))) -> c12(A__FST(a__fst(mark(x0), mark(x1)), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(fst(x0, x1), len(z0))) -> c12(A__FST(a__fst(mark(x0), mark(x1)), a__len(mark(z0))), MARK(len(z0))) MARK(fst(fst(x0, x1), 0)) -> c12(A__FST(a__fst(mark(x0), mark(x1)), 0), MARK(0)) MARK(fst(fst(x0, x1), s(z0))) -> c12(A__FST(a__fst(mark(x0), mark(x1)), s(z0)), MARK(s(z0))) MARK(fst(fst(x0, x1), nil)) -> c12(A__FST(a__fst(mark(x0), mark(x1)), nil), MARK(nil)) MARK(fst(fst(x0, x1), cons(z0, z1))) -> c12(A__FST(a__fst(mark(x0), mark(x1)), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(fst(x0, x1), x2)) -> c12(A__FST(fst(mark(x0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) ---------------------------------------- (156) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, x1), 0)) -> c12(A__FST(a__fst(mark(x0), mark(x1)), 0), MARK(0)) MARK(fst(fst(x0, x1), s(z0))) -> c12(A__FST(a__fst(mark(x0), mark(x1)), s(z0)), MARK(s(z0))) MARK(fst(fst(x0, x1), nil)) -> c12(A__FST(a__fst(mark(x0), mark(x1)), nil), MARK(nil)) MARK(fst(fst(x0, x1), x2)) -> c12(A__FST(fst(mark(x0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, x1), 0)) -> c12(A__FST(a__fst(mark(x0), mark(x1)), 0), MARK(0)) MARK(fst(fst(x0, x1), s(z0))) -> c12(A__FST(a__fst(mark(x0), mark(x1)), s(z0)), MARK(s(z0))) MARK(fst(fst(x0, x1), nil)) -> c12(A__FST(a__fst(mark(x0), mark(x1)), nil), MARK(nil)) MARK(fst(fst(x0, x1), x2)) -> c12(A__FST(fst(mark(x0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2 ---------------------------------------- (157) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: MARK(fst(fst(x0, x1), nil)) -> c12(A__FST(a__fst(mark(x0), mark(x1)), nil), MARK(nil)) MARK(fst(fst(x0, x1), 0)) -> c12(A__FST(a__fst(mark(x0), mark(x1)), 0), MARK(0)) MARK(fst(fst(x0, x1), s(z0))) -> c12(A__FST(a__fst(mark(x0), mark(x1)), s(z0)), MARK(s(z0))) ---------------------------------------- (158) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, x1), x2)) -> c12(A__FST(fst(mark(x0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, x1), x2)) -> c12(A__FST(fst(mark(x0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2 ---------------------------------------- (159) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (160) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2 ---------------------------------------- (161) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(fst(from(z0), x1)) -> c12(A__FST(a__from(mark(z0)), mark(x1)), MARK(x1)) by MARK(fst(from(x0), fst(z0, z1))) -> c12(A__FST(a__from(mark(x0)), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(from(x0), from(z0))) -> c12(A__FST(a__from(mark(x0)), a__from(mark(z0))), MARK(from(z0))) MARK(fst(from(x0), add(z0, z1))) -> c12(A__FST(a__from(mark(x0)), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(from(x0), len(z0))) -> c12(A__FST(a__from(mark(x0)), a__len(mark(z0))), MARK(len(z0))) MARK(fst(from(x0), 0)) -> c12(A__FST(a__from(mark(x0)), 0), MARK(0)) MARK(fst(from(x0), s(z0))) -> c12(A__FST(a__from(mark(x0)), s(z0)), MARK(s(z0))) MARK(fst(from(x0), nil)) -> c12(A__FST(a__from(mark(x0)), nil), MARK(nil)) MARK(fst(from(x0), cons(z0, z1))) -> c12(A__FST(a__from(mark(x0)), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(from(x0), x1)) -> c12(A__FST(cons(mark(mark(x0)), from(s(mark(x0)))), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(A__FST(from(mark(x0)), mark(x1)), MARK(x1)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) ---------------------------------------- (162) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(x0), 0)) -> c12(A__FST(a__from(mark(x0)), 0), MARK(0)) MARK(fst(from(x0), s(z0))) -> c12(A__FST(a__from(mark(x0)), s(z0)), MARK(s(z0))) MARK(fst(from(x0), nil)) -> c12(A__FST(a__from(mark(x0)), nil), MARK(nil)) MARK(fst(from(x0), x1)) -> c12(A__FST(cons(mark(mark(x0)), from(s(mark(x0)))), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(A__FST(from(mark(x0)), mark(x1)), MARK(x1)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(x0), 0)) -> c12(A__FST(a__from(mark(x0)), 0), MARK(0)) MARK(fst(from(x0), s(z0))) -> c12(A__FST(a__from(mark(x0)), s(z0)), MARK(s(z0))) MARK(fst(from(x0), nil)) -> c12(A__FST(a__from(mark(x0)), nil), MARK(nil)) MARK(fst(from(x0), x1)) -> c12(A__FST(cons(mark(mark(x0)), from(s(mark(x0)))), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(A__FST(from(mark(x0)), mark(x1)), MARK(x1)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2 ---------------------------------------- (163) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: MARK(fst(from(x0), nil)) -> c12(A__FST(a__from(mark(x0)), nil), MARK(nil)) MARK(fst(from(x0), 0)) -> c12(A__FST(a__from(mark(x0)), 0), MARK(0)) MARK(fst(from(x0), s(z0))) -> c12(A__FST(a__from(mark(x0)), s(z0)), MARK(s(z0))) ---------------------------------------- (164) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(x0), x1)) -> c12(A__FST(cons(mark(mark(x0)), from(s(mark(x0)))), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(A__FST(from(mark(x0)), mark(x1)), MARK(x1)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(x0), x1)) -> c12(A__FST(cons(mark(mark(x0)), from(s(mark(x0)))), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(A__FST(from(mark(x0)), mark(x1)), MARK(x1)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2 ---------------------------------------- (165) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (166) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2 ---------------------------------------- (167) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(fst(add(z0, z1), x1)) -> c12(A__FST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) by MARK(fst(add(x0, x1), fst(z0, z1))) -> c12(A__FST(a__add(mark(x0), mark(x1)), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(add(x0, x1), from(z0))) -> c12(A__FST(a__add(mark(x0), mark(x1)), a__from(mark(z0))), MARK(from(z0))) MARK(fst(add(x0, x1), add(z0, z1))) -> c12(A__FST(a__add(mark(x0), mark(x1)), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(add(x0, x1), len(z0))) -> c12(A__FST(a__add(mark(x0), mark(x1)), a__len(mark(z0))), MARK(len(z0))) MARK(fst(add(x0, x1), 0)) -> c12(A__FST(a__add(mark(x0), mark(x1)), 0), MARK(0)) MARK(fst(add(x0, x1), s(z0))) -> c12(A__FST(a__add(mark(x0), mark(x1)), s(z0)), MARK(s(z0))) MARK(fst(add(x0, x1), nil)) -> c12(A__FST(a__add(mark(x0), mark(x1)), nil), MARK(nil)) MARK(fst(add(x0, x1), cons(z0, z1))) -> c12(A__FST(a__add(mark(x0), mark(x1)), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(add(x0, x1), x2)) -> c12(A__FST(add(mark(x0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) ---------------------------------------- (168) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, x1), 0)) -> c12(A__FST(a__add(mark(x0), mark(x1)), 0), MARK(0)) MARK(fst(add(x0, x1), s(z0))) -> c12(A__FST(a__add(mark(x0), mark(x1)), s(z0)), MARK(s(z0))) MARK(fst(add(x0, x1), nil)) -> c12(A__FST(a__add(mark(x0), mark(x1)), nil), MARK(nil)) MARK(fst(add(x0, x1), x2)) -> c12(A__FST(add(mark(x0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, x1), 0)) -> c12(A__FST(a__add(mark(x0), mark(x1)), 0), MARK(0)) MARK(fst(add(x0, x1), s(z0))) -> c12(A__FST(a__add(mark(x0), mark(x1)), s(z0)), MARK(s(z0))) MARK(fst(add(x0, x1), nil)) -> c12(A__FST(a__add(mark(x0), mark(x1)), nil), MARK(nil)) MARK(fst(add(x0, x1), x2)) -> c12(A__FST(add(mark(x0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2 ---------------------------------------- (169) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: MARK(fst(add(x0, x1), 0)) -> c12(A__FST(a__add(mark(x0), mark(x1)), 0), MARK(0)) MARK(fst(add(x0, x1), nil)) -> c12(A__FST(a__add(mark(x0), mark(x1)), nil), MARK(nil)) MARK(fst(add(x0, x1), s(z0))) -> c12(A__FST(a__add(mark(x0), mark(x1)), s(z0)), MARK(s(z0))) ---------------------------------------- (170) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, x1), x2)) -> c12(A__FST(add(mark(x0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, x1), x2)) -> c12(A__FST(add(mark(x0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2 ---------------------------------------- (171) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (172) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2 ---------------------------------------- (173) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(fst(len(z0), x1)) -> c12(A__FST(a__len(mark(z0)), mark(x1)), MARK(x1)) by MARK(fst(len(x0), fst(z0, z1))) -> c12(A__FST(a__len(mark(x0)), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(len(x0), from(z0))) -> c12(A__FST(a__len(mark(x0)), a__from(mark(z0))), MARK(from(z0))) MARK(fst(len(x0), add(z0, z1))) -> c12(A__FST(a__len(mark(x0)), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(len(x0), len(z0))) -> c12(A__FST(a__len(mark(x0)), a__len(mark(z0))), MARK(len(z0))) MARK(fst(len(x0), 0)) -> c12(A__FST(a__len(mark(x0)), 0), MARK(0)) MARK(fst(len(x0), s(z0))) -> c12(A__FST(a__len(mark(x0)), s(z0)), MARK(s(z0))) MARK(fst(len(x0), nil)) -> c12(A__FST(a__len(mark(x0)), nil), MARK(nil)) MARK(fst(len(x0), cons(z0, z1))) -> c12(A__FST(a__len(mark(x0)), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(len(x0), x1)) -> c12(A__FST(len(mark(x0)), mark(x1)), MARK(x1)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) ---------------------------------------- (174) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(x0), 0)) -> c12(A__FST(a__len(mark(x0)), 0), MARK(0)) MARK(fst(len(x0), s(z0))) -> c12(A__FST(a__len(mark(x0)), s(z0)), MARK(s(z0))) MARK(fst(len(x0), nil)) -> c12(A__FST(a__len(mark(x0)), nil), MARK(nil)) MARK(fst(len(x0), x1)) -> c12(A__FST(len(mark(x0)), mark(x1)), MARK(x1)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(x0), 0)) -> c12(A__FST(a__len(mark(x0)), 0), MARK(0)) MARK(fst(len(x0), s(z0))) -> c12(A__FST(a__len(mark(x0)), s(z0)), MARK(s(z0))) MARK(fst(len(x0), nil)) -> c12(A__FST(a__len(mark(x0)), nil), MARK(nil)) MARK(fst(len(x0), x1)) -> c12(A__FST(len(mark(x0)), mark(x1)), MARK(x1)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2 ---------------------------------------- (175) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: MARK(fst(len(x0), s(z0))) -> c12(A__FST(a__len(mark(x0)), s(z0)), MARK(s(z0))) MARK(fst(len(x0), nil)) -> c12(A__FST(a__len(mark(x0)), nil), MARK(nil)) MARK(fst(len(x0), 0)) -> c12(A__FST(a__len(mark(x0)), 0), MARK(0)) ---------------------------------------- (176) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(x0), x1)) -> c12(A__FST(len(mark(x0)), mark(x1)), MARK(x1)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(x0), x1)) -> c12(A__FST(len(mark(x0)), mark(x1)), MARK(x1)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2 ---------------------------------------- (177) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (178) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_2, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2 ---------------------------------------- (179) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(fst(s(z0), x1)) -> c12(A__FST(s(z0), mark(x1)), MARK(x1)) by MARK(fst(s(x0), fst(z0, z1))) -> c12(A__FST(s(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(fst(s(x0), from(z0))) -> c12(A__FST(s(x0), a__from(mark(z0))), MARK(from(z0))) MARK(fst(s(x0), add(z0, z1))) -> c12(A__FST(s(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(fst(s(x0), len(z0))) -> c12(A__FST(s(x0), a__len(mark(z0))), MARK(len(z0))) MARK(fst(s(x0), 0)) -> c12(A__FST(s(x0), 0), MARK(0)) MARK(fst(s(x0), s(z0))) -> c12(A__FST(s(x0), s(z0)), MARK(s(z0))) MARK(fst(s(x0), nil)) -> c12(A__FST(s(x0), nil), MARK(nil)) MARK(fst(s(x0), cons(z0, z1))) -> c12(A__FST(s(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) ---------------------------------------- (180) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(fst(s(x0), 0)) -> c12(A__FST(s(x0), 0), MARK(0)) MARK(fst(s(x0), s(z0))) -> c12(A__FST(s(x0), s(z0)), MARK(s(z0))) MARK(fst(s(x0), nil)) -> c12(A__FST(s(x0), nil), MARK(nil)) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(fst(s(x0), 0)) -> c12(A__FST(s(x0), 0), MARK(0)) MARK(fst(s(x0), s(z0))) -> c12(A__FST(s(x0), s(z0)), MARK(s(z0))) MARK(fst(s(x0), nil)) -> c12(A__FST(s(x0), nil), MARK(nil)) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (181) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: MARK(fst(s(x0), s(z0))) -> c12(A__FST(s(x0), s(z0)), MARK(s(z0))) MARK(fst(s(x0), 0)) -> c12(A__FST(s(x0), 0), MARK(0)) MARK(fst(s(x0), nil)) -> c12(A__FST(s(x0), nil), MARK(nil)) ---------------------------------------- (182) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (183) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(add(x0, fst(z0, z1))) -> c14(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(x0)) by MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2))), MARK(0)) MARK(add(s(z0), fst(x1, x2))) -> c14(A__ADD(s(z0), a__fst(mark(x1), mark(x2))), MARK(s(z0))) MARK(add(nil, fst(x1, x2))) -> c14(A__ADD(nil, a__fst(mark(x1), mark(x2))), MARK(nil)) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(A__ADD(cons(mark(z0), z1), a__fst(mark(x1), mark(x2))), MARK(cons(z0, z1))) ---------------------------------------- (184) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2))), MARK(0)) MARK(add(s(z0), fst(x1, x2))) -> c14(A__ADD(s(z0), a__fst(mark(x1), mark(x2))), MARK(s(z0))) MARK(add(nil, fst(x1, x2))) -> c14(A__ADD(nil, a__fst(mark(x1), mark(x2))), MARK(nil)) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(A__ADD(cons(mark(z0), z1), a__fst(mark(x1), mark(x2))), MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2))), MARK(0)) MARK(add(s(z0), fst(x1, x2))) -> c14(A__ADD(s(z0), a__fst(mark(x1), mark(x2))), MARK(s(z0))) MARK(add(nil, fst(x1, x2))) -> c14(A__ADD(nil, a__fst(mark(x1), mark(x2))), MARK(nil)) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(A__ADD(cons(mark(z0), z1), a__fst(mark(x1), mark(x2))), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (185) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(add(nil, fst(x1, x2))) -> c14(A__ADD(nil, a__fst(mark(x1), mark(x2))), MARK(nil)) MARK(add(s(z0), fst(x1, x2))) -> c14(A__ADD(s(z0), a__fst(mark(x1), mark(x2))), MARK(s(z0))) ---------------------------------------- (186) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2))), MARK(0)) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(A__ADD(cons(mark(z0), z1), a__fst(mark(x1), mark(x2))), MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2))), MARK(0)) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(A__ADD(cons(mark(z0), z1), a__fst(mark(x1), mark(x2))), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (187) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (188) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (189) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(add(x0, from(z0))) -> c14(A__ADD(mark(x0), a__from(mark(z0))), MARK(x0)) by MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1))), MARK(0)) MARK(add(s(z0), from(x1))) -> c14(A__ADD(s(z0), a__from(mark(x1))), MARK(s(z0))) MARK(add(nil, from(x1))) -> c14(A__ADD(nil, a__from(mark(x1))), MARK(nil)) MARK(add(cons(z0, z1), from(x1))) -> c14(A__ADD(cons(mark(z0), z1), a__from(mark(x1))), MARK(cons(z0, z1))) ---------------------------------------- (190) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1))), MARK(0)) MARK(add(s(z0), from(x1))) -> c14(A__ADD(s(z0), a__from(mark(x1))), MARK(s(z0))) MARK(add(nil, from(x1))) -> c14(A__ADD(nil, a__from(mark(x1))), MARK(nil)) MARK(add(cons(z0, z1), from(x1))) -> c14(A__ADD(cons(mark(z0), z1), a__from(mark(x1))), MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1))), MARK(0)) MARK(add(s(z0), from(x1))) -> c14(A__ADD(s(z0), a__from(mark(x1))), MARK(s(z0))) MARK(add(nil, from(x1))) -> c14(A__ADD(nil, a__from(mark(x1))), MARK(nil)) MARK(add(cons(z0, z1), from(x1))) -> c14(A__ADD(cons(mark(z0), z1), a__from(mark(x1))), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (191) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(add(nil, from(x1))) -> c14(A__ADD(nil, a__from(mark(x1))), MARK(nil)) MARK(add(s(z0), from(x1))) -> c14(A__ADD(s(z0), a__from(mark(x1))), MARK(s(z0))) ---------------------------------------- (192) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1))), MARK(0)) MARK(add(cons(z0, z1), from(x1))) -> c14(A__ADD(cons(mark(z0), z1), a__from(mark(x1))), MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1))), MARK(0)) MARK(add(cons(z0, z1), from(x1))) -> c14(A__ADD(cons(mark(z0), z1), a__from(mark(x1))), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (193) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (194) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (195) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(add(x0, add(z0, z1))) -> c14(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) by MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2))), MARK(0)) MARK(add(s(z0), add(x1, x2))) -> c14(A__ADD(s(z0), a__add(mark(x1), mark(x2))), MARK(s(z0))) MARK(add(nil, add(x1, x2))) -> c14(A__ADD(nil, a__add(mark(x1), mark(x2))), MARK(nil)) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(A__ADD(cons(mark(z0), z1), a__add(mark(x1), mark(x2))), MARK(cons(z0, z1))) ---------------------------------------- (196) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2))), MARK(0)) MARK(add(s(z0), add(x1, x2))) -> c14(A__ADD(s(z0), a__add(mark(x1), mark(x2))), MARK(s(z0))) MARK(add(nil, add(x1, x2))) -> c14(A__ADD(nil, a__add(mark(x1), mark(x2))), MARK(nil)) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(A__ADD(cons(mark(z0), z1), a__add(mark(x1), mark(x2))), MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2))), MARK(0)) MARK(add(s(z0), add(x1, x2))) -> c14(A__ADD(s(z0), a__add(mark(x1), mark(x2))), MARK(s(z0))) MARK(add(nil, add(x1, x2))) -> c14(A__ADD(nil, a__add(mark(x1), mark(x2))), MARK(nil)) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(A__ADD(cons(mark(z0), z1), a__add(mark(x1), mark(x2))), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (197) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(add(s(z0), add(x1, x2))) -> c14(A__ADD(s(z0), a__add(mark(x1), mark(x2))), MARK(s(z0))) MARK(add(nil, add(x1, x2))) -> c14(A__ADD(nil, a__add(mark(x1), mark(x2))), MARK(nil)) ---------------------------------------- (198) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2))), MARK(0)) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(A__ADD(cons(mark(z0), z1), a__add(mark(x1), mark(x2))), MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2))), MARK(0)) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(A__ADD(cons(mark(z0), z1), a__add(mark(x1), mark(x2))), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (199) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (200) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (201) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(add(x0, len(z0))) -> c14(A__ADD(mark(x0), a__len(mark(z0))), MARK(x0)) by MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1))), MARK(0)) MARK(add(s(z0), len(x1))) -> c14(A__ADD(s(z0), a__len(mark(x1))), MARK(s(z0))) MARK(add(nil, len(x1))) -> c14(A__ADD(nil, a__len(mark(x1))), MARK(nil)) MARK(add(cons(z0, z1), len(x1))) -> c14(A__ADD(cons(mark(z0), z1), a__len(mark(x1))), MARK(cons(z0, z1))) ---------------------------------------- (202) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1))), MARK(0)) MARK(add(s(z0), len(x1))) -> c14(A__ADD(s(z0), a__len(mark(x1))), MARK(s(z0))) MARK(add(nil, len(x1))) -> c14(A__ADD(nil, a__len(mark(x1))), MARK(nil)) MARK(add(cons(z0, z1), len(x1))) -> c14(A__ADD(cons(mark(z0), z1), a__len(mark(x1))), MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1))), MARK(0)) MARK(add(s(z0), len(x1))) -> c14(A__ADD(s(z0), a__len(mark(x1))), MARK(s(z0))) MARK(add(nil, len(x1))) -> c14(A__ADD(nil, a__len(mark(x1))), MARK(nil)) MARK(add(cons(z0, z1), len(x1))) -> c14(A__ADD(cons(mark(z0), z1), a__len(mark(x1))), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (203) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(add(nil, len(x1))) -> c14(A__ADD(nil, a__len(mark(x1))), MARK(nil)) MARK(add(s(z0), len(x1))) -> c14(A__ADD(s(z0), a__len(mark(x1))), MARK(s(z0))) ---------------------------------------- (204) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1))), MARK(0)) MARK(add(cons(z0, z1), len(x1))) -> c14(A__ADD(cons(mark(z0), z1), a__len(mark(x1))), MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1))), MARK(0)) MARK(add(cons(z0, z1), len(x1))) -> c14(A__ADD(cons(mark(z0), z1), a__len(mark(x1))), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (205) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (206) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (207) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(add(x0, 0)) -> c14(A__ADD(mark(x0), 0), MARK(x0)) by MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0), MARK(0)) MARK(add(s(z0), 0)) -> c14(A__ADD(s(z0), 0), MARK(s(z0))) MARK(add(nil, 0)) -> c14(A__ADD(nil, 0), MARK(nil)) MARK(add(cons(z0, z1), 0)) -> c14(A__ADD(cons(mark(z0), z1), 0), MARK(cons(z0, z1))) ---------------------------------------- (208) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0), MARK(0)) MARK(add(s(z0), 0)) -> c14(A__ADD(s(z0), 0), MARK(s(z0))) MARK(add(nil, 0)) -> c14(A__ADD(nil, 0), MARK(nil)) MARK(add(cons(z0, z1), 0)) -> c14(A__ADD(cons(mark(z0), z1), 0), MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0), MARK(0)) MARK(add(s(z0), 0)) -> c14(A__ADD(s(z0), 0), MARK(s(z0))) MARK(add(nil, 0)) -> c14(A__ADD(nil, 0), MARK(nil)) MARK(add(cons(z0, z1), 0)) -> c14(A__ADD(cons(mark(z0), z1), 0), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (209) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(add(nil, 0)) -> c14(A__ADD(nil, 0), MARK(nil)) MARK(add(s(z0), 0)) -> c14(A__ADD(s(z0), 0), MARK(s(z0))) ---------------------------------------- (210) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0), MARK(0)) MARK(add(cons(z0, z1), 0)) -> c14(A__ADD(cons(mark(z0), z1), 0), MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0), MARK(0)) MARK(add(cons(z0, z1), 0)) -> c14(A__ADD(cons(mark(z0), z1), 0), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (211) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (212) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (213) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(add(x0, s(z0))) -> c14(A__ADD(mark(x0), s(z0)), MARK(x0)) by MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1)), MARK(0)) MARK(add(s(z0), s(x1))) -> c14(A__ADD(s(z0), s(x1)), MARK(s(z0))) MARK(add(nil, s(x1))) -> c14(A__ADD(nil, s(x1)), MARK(nil)) MARK(add(cons(z0, z1), s(x1))) -> c14(A__ADD(cons(mark(z0), z1), s(x1)), MARK(cons(z0, z1))) ---------------------------------------- (214) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1)), MARK(0)) MARK(add(s(z0), s(x1))) -> c14(A__ADD(s(z0), s(x1)), MARK(s(z0))) MARK(add(nil, s(x1))) -> c14(A__ADD(nil, s(x1)), MARK(nil)) MARK(add(cons(z0, z1), s(x1))) -> c14(A__ADD(cons(mark(z0), z1), s(x1)), MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1)), MARK(0)) MARK(add(s(z0), s(x1))) -> c14(A__ADD(s(z0), s(x1)), MARK(s(z0))) MARK(add(nil, s(x1))) -> c14(A__ADD(nil, s(x1)), MARK(nil)) MARK(add(cons(z0, z1), s(x1))) -> c14(A__ADD(cons(mark(z0), z1), s(x1)), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (215) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(add(s(z0), s(x1))) -> c14(A__ADD(s(z0), s(x1)), MARK(s(z0))) MARK(add(nil, s(x1))) -> c14(A__ADD(nil, s(x1)), MARK(nil)) ---------------------------------------- (216) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1)), MARK(0)) MARK(add(cons(z0, z1), s(x1))) -> c14(A__ADD(cons(mark(z0), z1), s(x1)), MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1)), MARK(0)) MARK(add(cons(z0, z1), s(x1))) -> c14(A__ADD(cons(mark(z0), z1), s(x1)), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (217) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (218) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (219) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(add(x0, nil)) -> c14(A__ADD(mark(x0), nil), MARK(x0)) by MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil), MARK(0)) MARK(add(s(z0), nil)) -> c14(A__ADD(s(z0), nil), MARK(s(z0))) MARK(add(nil, nil)) -> c14(A__ADD(nil, nil), MARK(nil)) MARK(add(cons(z0, z1), nil)) -> c14(A__ADD(cons(mark(z0), z1), nil), MARK(cons(z0, z1))) ---------------------------------------- (220) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil), MARK(0)) MARK(add(s(z0), nil)) -> c14(A__ADD(s(z0), nil), MARK(s(z0))) MARK(add(nil, nil)) -> c14(A__ADD(nil, nil), MARK(nil)) MARK(add(cons(z0, z1), nil)) -> c14(A__ADD(cons(mark(z0), z1), nil), MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil), MARK(0)) MARK(add(s(z0), nil)) -> c14(A__ADD(s(z0), nil), MARK(s(z0))) MARK(add(nil, nil)) -> c14(A__ADD(nil, nil), MARK(nil)) MARK(add(cons(z0, z1), nil)) -> c14(A__ADD(cons(mark(z0), z1), nil), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (221) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(add(s(z0), nil)) -> c14(A__ADD(s(z0), nil), MARK(s(z0))) MARK(add(nil, nil)) -> c14(A__ADD(nil, nil), MARK(nil)) ---------------------------------------- (222) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil), MARK(0)) MARK(add(cons(z0, z1), nil)) -> c14(A__ADD(cons(mark(z0), z1), nil), MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil), MARK(0)) MARK(add(cons(z0, z1), nil)) -> c14(A__ADD(cons(mark(z0), z1), nil), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (223) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (224) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (225) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(add(x0, cons(z0, z1))) -> c14(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) by MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2)), MARK(0)) MARK(add(s(z0), cons(x1, x2))) -> c14(A__ADD(s(z0), cons(mark(x1), x2)), MARK(s(z0))) MARK(add(nil, cons(x1, x2))) -> c14(A__ADD(nil, cons(mark(x1), x2)), MARK(nil)) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(A__ADD(cons(mark(z0), z1), cons(mark(x1), x2)), MARK(cons(z0, z1))) ---------------------------------------- (226) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2)), MARK(0)) MARK(add(s(z0), cons(x1, x2))) -> c14(A__ADD(s(z0), cons(mark(x1), x2)), MARK(s(z0))) MARK(add(nil, cons(x1, x2))) -> c14(A__ADD(nil, cons(mark(x1), x2)), MARK(nil)) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(A__ADD(cons(mark(z0), z1), cons(mark(x1), x2)), MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2)), MARK(0)) MARK(add(s(z0), cons(x1, x2))) -> c14(A__ADD(s(z0), cons(mark(x1), x2)), MARK(s(z0))) MARK(add(nil, cons(x1, x2))) -> c14(A__ADD(nil, cons(mark(x1), x2)), MARK(nil)) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(A__ADD(cons(mark(z0), z1), cons(mark(x1), x2)), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (227) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(add(s(z0), cons(x1, x2))) -> c14(A__ADD(s(z0), cons(mark(x1), x2)), MARK(s(z0))) MARK(add(nil, cons(x1, x2))) -> c14(A__ADD(nil, cons(mark(x1), x2)), MARK(nil)) ---------------------------------------- (228) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2)), MARK(0)) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(A__ADD(cons(mark(z0), z1), cons(mark(x1), x2)), MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2)), MARK(0)) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(A__ADD(cons(mark(z0), z1), cons(mark(x1), x2)), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (229) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (230) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (231) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(add(fst(z0, z1), x1)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(fst(z0, z1))) by MARK(add(fst(x0, x1), fst(z0, z1))) -> c14(A__ADD(a__fst(mark(x0), mark(x1)), a__fst(mark(z0), mark(z1))), MARK(fst(x0, x1))) MARK(add(fst(x0, x1), from(z0))) -> c14(A__ADD(a__fst(mark(x0), mark(x1)), a__from(mark(z0))), MARK(fst(x0, x1))) MARK(add(fst(x0, x1), add(z0, z1))) -> c14(A__ADD(a__fst(mark(x0), mark(x1)), a__add(mark(z0), mark(z1))), MARK(fst(x0, x1))) MARK(add(fst(x0, x1), len(z0))) -> c14(A__ADD(a__fst(mark(x0), mark(x1)), a__len(mark(z0))), MARK(fst(x0, x1))) MARK(add(fst(x0, x1), 0)) -> c14(A__ADD(a__fst(mark(x0), mark(x1)), 0), MARK(fst(x0, x1))) MARK(add(fst(x0, x1), s(z0))) -> c14(A__ADD(a__fst(mark(x0), mark(x1)), s(z0)), MARK(fst(x0, x1))) MARK(add(fst(x0, x1), nil)) -> c14(A__ADD(a__fst(mark(x0), mark(x1)), nil), MARK(fst(x0, x1))) MARK(add(fst(x0, x1), cons(z0, z1))) -> c14(A__ADD(a__fst(mark(x0), mark(x1)), cons(mark(z0), z1)), MARK(fst(x0, x1))) MARK(add(fst(x0, x1), x2)) -> c14(A__ADD(fst(mark(x0), mark(x1)), mark(x2)), MARK(fst(x0, x1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) ---------------------------------------- (232) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, x1), x2)) -> c14(A__ADD(fst(mark(x0), mark(x1)), mark(x2)), MARK(fst(x0, x1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, x1), x2)) -> c14(A__ADD(fst(mark(x0), mark(x1)), mark(x2)), MARK(fst(x0, x1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (233) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (234) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (235) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(add(from(z0), x1)) -> c14(A__ADD(a__from(mark(z0)), mark(x1)), MARK(from(z0))) by MARK(add(from(x0), fst(z0, z1))) -> c14(A__ADD(a__from(mark(x0)), a__fst(mark(z0), mark(z1))), MARK(from(x0))) MARK(add(from(x0), from(z0))) -> c14(A__ADD(a__from(mark(x0)), a__from(mark(z0))), MARK(from(x0))) MARK(add(from(x0), add(z0, z1))) -> c14(A__ADD(a__from(mark(x0)), a__add(mark(z0), mark(z1))), MARK(from(x0))) MARK(add(from(x0), len(z0))) -> c14(A__ADD(a__from(mark(x0)), a__len(mark(z0))), MARK(from(x0))) MARK(add(from(x0), 0)) -> c14(A__ADD(a__from(mark(x0)), 0), MARK(from(x0))) MARK(add(from(x0), s(z0))) -> c14(A__ADD(a__from(mark(x0)), s(z0)), MARK(from(x0))) MARK(add(from(x0), nil)) -> c14(A__ADD(a__from(mark(x0)), nil), MARK(from(x0))) MARK(add(from(x0), cons(z0, z1))) -> c14(A__ADD(a__from(mark(x0)), cons(mark(z0), z1)), MARK(from(x0))) MARK(add(from(x0), x1)) -> c14(A__ADD(cons(mark(mark(x0)), from(s(mark(x0)))), mark(x1)), MARK(from(x0))) MARK(add(from(x0), x1)) -> c14(A__ADD(from(mark(x0)), mark(x1)), MARK(from(x0))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) ---------------------------------------- (236) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(x0), x1)) -> c14(A__ADD(cons(mark(mark(x0)), from(s(mark(x0)))), mark(x1)), MARK(from(x0))) MARK(add(from(x0), x1)) -> c14(A__ADD(from(mark(x0)), mark(x1)), MARK(from(x0))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(x0), x1)) -> c14(A__ADD(cons(mark(mark(x0)), from(s(mark(x0)))), mark(x1)), MARK(from(x0))) MARK(add(from(x0), x1)) -> c14(A__ADD(from(mark(x0)), mark(x1)), MARK(from(x0))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (237) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (238) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (239) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(add(add(z0, z1), x1)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) by MARK(add(add(x0, x1), fst(z0, z1))) -> c14(A__ADD(a__add(mark(x0), mark(x1)), a__fst(mark(z0), mark(z1))), MARK(add(x0, x1))) MARK(add(add(x0, x1), from(z0))) -> c14(A__ADD(a__add(mark(x0), mark(x1)), a__from(mark(z0))), MARK(add(x0, x1))) MARK(add(add(x0, x1), add(z0, z1))) -> c14(A__ADD(a__add(mark(x0), mark(x1)), a__add(mark(z0), mark(z1))), MARK(add(x0, x1))) MARK(add(add(x0, x1), len(z0))) -> c14(A__ADD(a__add(mark(x0), mark(x1)), a__len(mark(z0))), MARK(add(x0, x1))) MARK(add(add(x0, x1), 0)) -> c14(A__ADD(a__add(mark(x0), mark(x1)), 0), MARK(add(x0, x1))) MARK(add(add(x0, x1), s(z0))) -> c14(A__ADD(a__add(mark(x0), mark(x1)), s(z0)), MARK(add(x0, x1))) MARK(add(add(x0, x1), nil)) -> c14(A__ADD(a__add(mark(x0), mark(x1)), nil), MARK(add(x0, x1))) MARK(add(add(x0, x1), cons(z0, z1))) -> c14(A__ADD(a__add(mark(x0), mark(x1)), cons(mark(z0), z1)), MARK(add(x0, x1))) MARK(add(add(x0, x1), x2)) -> c14(A__ADD(add(mark(x0), mark(x1)), mark(x2)), MARK(add(x0, x1))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) ---------------------------------------- (240) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, x1), x2)) -> c14(A__ADD(add(mark(x0), mark(x1)), mark(x2)), MARK(add(x0, x1))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, x1), x2)) -> c14(A__ADD(add(mark(x0), mark(x1)), mark(x2)), MARK(add(x0, x1))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (241) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (242) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(add(add(x0, x1), x2)) -> c14(MARK(add(x0, x1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(add(add(x0, x1), x2)) -> c14(MARK(add(x0, x1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_2, c14_1, c15_2, c15_1, c11_2, c12_2 ---------------------------------------- (243) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(add(len(z0), x1)) -> c14(A__ADD(a__len(mark(z0)), mark(x1)), MARK(len(z0))) by MARK(add(len(x0), fst(z0, z1))) -> c14(A__ADD(a__len(mark(x0)), a__fst(mark(z0), mark(z1))), MARK(len(x0))) MARK(add(len(x0), from(z0))) -> c14(A__ADD(a__len(mark(x0)), a__from(mark(z0))), MARK(len(x0))) MARK(add(len(x0), add(z0, z1))) -> c14(A__ADD(a__len(mark(x0)), a__add(mark(z0), mark(z1))), MARK(len(x0))) MARK(add(len(x0), len(z0))) -> c14(A__ADD(a__len(mark(x0)), a__len(mark(z0))), MARK(len(x0))) MARK(add(len(x0), 0)) -> c14(A__ADD(a__len(mark(x0)), 0), MARK(len(x0))) MARK(add(len(x0), s(z0))) -> c14(A__ADD(a__len(mark(x0)), s(z0)), MARK(len(x0))) MARK(add(len(x0), nil)) -> c14(A__ADD(a__len(mark(x0)), nil), MARK(len(x0))) MARK(add(len(x0), cons(z0, z1))) -> c14(A__ADD(a__len(mark(x0)), cons(mark(z0), z1)), MARK(len(x0))) MARK(add(len(x0), x1)) -> c14(A__ADD(len(mark(x0)), mark(x1)), MARK(len(x0))) MARK(add(len(fst(z0, z1)), x1)) -> c14(A__ADD(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(add(len(from(z0)), x1)) -> c14(A__ADD(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(add(len(add(z0, z1)), x1)) -> c14(A__ADD(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(add(len(len(z0)), x1)) -> c14(A__ADD(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(add(len(0), x1)) -> c14(A__ADD(a__len(0), mark(x1)), MARK(len(0))) MARK(add(len(s(z0)), x1)) -> c14(A__ADD(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(add(len(nil), x1)) -> c14(A__ADD(a__len(nil), mark(x1)), MARK(len(nil))) MARK(add(len(cons(z0, z1)), x1)) -> c14(A__ADD(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(add(len(x0), x1)) -> c14(MARK(len(x0))) ---------------------------------------- (244) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(add(add(x0, x1), x2)) -> c14(MARK(add(x0, x1))) MARK(add(len(x0), x1)) -> c14(A__ADD(len(mark(x0)), mark(x1)), MARK(len(x0))) MARK(add(len(fst(z0, z1)), x1)) -> c14(A__ADD(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(add(len(from(z0)), x1)) -> c14(A__ADD(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(add(len(add(z0, z1)), x1)) -> c14(A__ADD(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(add(len(len(z0)), x1)) -> c14(A__ADD(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(add(len(0), x1)) -> c14(A__ADD(a__len(0), mark(x1)), MARK(len(0))) MARK(add(len(s(z0)), x1)) -> c14(A__ADD(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(add(len(nil), x1)) -> c14(A__ADD(a__len(nil), mark(x1)), MARK(len(nil))) MARK(add(len(cons(z0, z1)), x1)) -> c14(A__ADD(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(add(len(x0), x1)) -> c14(MARK(len(x0))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(add(add(x0, x1), x2)) -> c14(MARK(add(x0, x1))) MARK(add(len(x0), x1)) -> c14(A__ADD(len(mark(x0)), mark(x1)), MARK(len(x0))) MARK(add(len(fst(z0, z1)), x1)) -> c14(A__ADD(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(add(len(from(z0)), x1)) -> c14(A__ADD(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(add(len(add(z0, z1)), x1)) -> c14(A__ADD(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(add(len(len(z0)), x1)) -> c14(A__ADD(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(add(len(0), x1)) -> c14(A__ADD(a__len(0), mark(x1)), MARK(len(0))) MARK(add(len(s(z0)), x1)) -> c14(A__ADD(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(add(len(nil), x1)) -> c14(A__ADD(a__len(nil), mark(x1)), MARK(len(nil))) MARK(add(len(cons(z0, z1)), x1)) -> c14(A__ADD(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(add(len(x0), x1)) -> c14(MARK(len(x0))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_1, c15_2, c15_1, c11_2, c12_2, c14_2 ---------------------------------------- (245) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (246) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(add(add(x0, x1), x2)) -> c14(MARK(add(x0, x1))) MARK(add(len(fst(z0, z1)), x1)) -> c14(A__ADD(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(add(len(from(z0)), x1)) -> c14(A__ADD(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(add(len(add(z0, z1)), x1)) -> c14(A__ADD(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(add(len(len(z0)), x1)) -> c14(A__ADD(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(add(len(0), x1)) -> c14(A__ADD(a__len(0), mark(x1)), MARK(len(0))) MARK(add(len(s(z0)), x1)) -> c14(A__ADD(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(add(len(nil), x1)) -> c14(A__ADD(a__len(nil), mark(x1)), MARK(len(nil))) MARK(add(len(cons(z0, z1)), x1)) -> c14(A__ADD(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(add(len(x0), x1)) -> c14(MARK(len(x0))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(add(add(x0, x1), x2)) -> c14(MARK(add(x0, x1))) MARK(add(len(fst(z0, z1)), x1)) -> c14(A__ADD(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(add(len(from(z0)), x1)) -> c14(A__ADD(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(add(len(add(z0, z1)), x1)) -> c14(A__ADD(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(add(len(len(z0)), x1)) -> c14(A__ADD(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(add(len(0), x1)) -> c14(A__ADD(a__len(0), mark(x1)), MARK(len(0))) MARK(add(len(s(z0)), x1)) -> c14(A__ADD(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(add(len(nil), x1)) -> c14(A__ADD(a__len(nil), mark(x1)), MARK(len(nil))) MARK(add(len(cons(z0, z1)), x1)) -> c14(A__ADD(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(add(len(x0), x1)) -> c14(MARK(len(x0))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_1, c15_2, c15_1, c11_2, c12_2, c14_2 ---------------------------------------- (247) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(add(x0, fst(z0, z1))) -> c15(A__ADD(mark(x0), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) by MARK(add(x0, fst(x1, x2))) -> c15(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(add(x0, fst(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(add(x0, fst(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(add(x0, fst(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(add(x0, fst(x1, 0))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(add(x0, fst(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(add(x0, fst(x1, nil))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(add(x0, fst(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(add(x0, fst(from(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(add(x0, fst(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(add(x0, fst(len(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(add(x0, fst(0, x2))) -> c15(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(add(x0, fst(s(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(add(x0, fst(nil, x2))) -> c15(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(add(x0, fst(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(add(fst(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(from(z0), fst(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(add(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(len(z0), fst(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(0, fst(x1, x2))) -> c15(A__ADD(0, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(s(z0), fst(x1, x2))) -> c15(A__ADD(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(nil, fst(x1, x2))) -> c15(A__ADD(nil, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c15(A__ADD(cons(mark(z0), z1), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) ---------------------------------------- (248) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(add(add(x0, x1), x2)) -> c14(MARK(add(x0, x1))) MARK(add(len(fst(z0, z1)), x1)) -> c14(A__ADD(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(add(len(from(z0)), x1)) -> c14(A__ADD(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(add(len(add(z0, z1)), x1)) -> c14(A__ADD(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(add(len(len(z0)), x1)) -> c14(A__ADD(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(add(len(0), x1)) -> c14(A__ADD(a__len(0), mark(x1)), MARK(len(0))) MARK(add(len(s(z0)), x1)) -> c14(A__ADD(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(add(len(nil), x1)) -> c14(A__ADD(a__len(nil), mark(x1)), MARK(len(nil))) MARK(add(len(cons(z0, z1)), x1)) -> c14(A__ADD(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(add(len(x0), x1)) -> c14(MARK(len(x0))) MARK(add(x0, fst(x1, x2))) -> c15(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(add(x0, fst(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(add(x0, fst(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(add(x0, fst(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(add(x0, fst(x1, 0))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(add(x0, fst(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(add(x0, fst(x1, nil))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(add(x0, fst(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(add(x0, fst(from(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(add(x0, fst(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(add(x0, fst(len(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(add(x0, fst(0, x2))) -> c15(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(add(x0, fst(s(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(add(x0, fst(nil, x2))) -> c15(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(add(x0, fst(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(add(fst(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(from(z0), fst(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(add(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(len(z0), fst(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(0, fst(x1, x2))) -> c15(A__ADD(0, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(s(z0), fst(x1, x2))) -> c15(A__ADD(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(nil, fst(x1, x2))) -> c15(A__ADD(nil, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c15(A__ADD(cons(mark(z0), z1), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(add(add(x0, x1), x2)) -> c14(MARK(add(x0, x1))) MARK(add(len(fst(z0, z1)), x1)) -> c14(A__ADD(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(add(len(from(z0)), x1)) -> c14(A__ADD(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(add(len(add(z0, z1)), x1)) -> c14(A__ADD(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(add(len(len(z0)), x1)) -> c14(A__ADD(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(add(len(0), x1)) -> c14(A__ADD(a__len(0), mark(x1)), MARK(len(0))) MARK(add(len(s(z0)), x1)) -> c14(A__ADD(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(add(len(nil), x1)) -> c14(A__ADD(a__len(nil), mark(x1)), MARK(len(nil))) MARK(add(len(cons(z0, z1)), x1)) -> c14(A__ADD(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(add(len(x0), x1)) -> c14(MARK(len(x0))) MARK(add(x0, fst(x1, x2))) -> c15(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(add(x0, fst(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(add(x0, fst(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(add(x0, fst(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(add(x0, fst(x1, 0))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(add(x0, fst(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(add(x0, fst(x1, nil))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(add(x0, fst(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(add(x0, fst(from(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(add(x0, fst(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(add(x0, fst(len(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(add(x0, fst(0, x2))) -> c15(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(add(x0, fst(s(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(add(x0, fst(nil, x2))) -> c15(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(add(x0, fst(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(add(fst(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(from(z0), fst(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(add(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(len(z0), fst(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(0, fst(x1, x2))) -> c15(A__ADD(0, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(s(z0), fst(x1, x2))) -> c15(A__ADD(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(nil, fst(x1, x2))) -> c15(A__ADD(nil, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c15(A__ADD(cons(mark(z0), z1), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_1, c15_2, c15_1, c11_2, c12_2, c14_2 ---------------------------------------- (249) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (250) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(add(add(x0, x1), x2)) -> c14(MARK(add(x0, x1))) MARK(add(len(fst(z0, z1)), x1)) -> c14(A__ADD(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(add(len(from(z0)), x1)) -> c14(A__ADD(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(add(len(add(z0, z1)), x1)) -> c14(A__ADD(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(add(len(len(z0)), x1)) -> c14(A__ADD(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(add(len(0), x1)) -> c14(A__ADD(a__len(0), mark(x1)), MARK(len(0))) MARK(add(len(s(z0)), x1)) -> c14(A__ADD(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(add(len(nil), x1)) -> c14(A__ADD(a__len(nil), mark(x1)), MARK(len(nil))) MARK(add(len(cons(z0, z1)), x1)) -> c14(A__ADD(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(add(len(x0), x1)) -> c14(MARK(len(x0))) MARK(add(x0, fst(x1, x2))) -> c15(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(add(x0, fst(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(add(x0, fst(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(add(x0, fst(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(add(x0, fst(x1, 0))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(add(x0, fst(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(add(x0, fst(x1, nil))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(add(x0, fst(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(add(x0, fst(from(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(add(x0, fst(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(add(x0, fst(len(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(add(x0, fst(0, x2))) -> c15(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(add(x0, fst(s(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(add(x0, fst(nil, x2))) -> c15(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(add(x0, fst(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(add(fst(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(from(z0), fst(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(add(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(len(z0), fst(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(0, fst(x1, x2))) -> c15(A__ADD(0, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(s(z0), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(nil, fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(add(add(x0, x1), x2)) -> c14(MARK(add(x0, x1))) MARK(add(len(fst(z0, z1)), x1)) -> c14(A__ADD(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(add(len(from(z0)), x1)) -> c14(A__ADD(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(add(len(add(z0, z1)), x1)) -> c14(A__ADD(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(add(len(len(z0)), x1)) -> c14(A__ADD(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(add(len(0), x1)) -> c14(A__ADD(a__len(0), mark(x1)), MARK(len(0))) MARK(add(len(s(z0)), x1)) -> c14(A__ADD(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(add(len(nil), x1)) -> c14(A__ADD(a__len(nil), mark(x1)), MARK(len(nil))) MARK(add(len(cons(z0, z1)), x1)) -> c14(A__ADD(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(add(len(x0), x1)) -> c14(MARK(len(x0))) MARK(add(x0, fst(x1, x2))) -> c15(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(add(x0, fst(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(add(x0, fst(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(add(x0, fst(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(add(x0, fst(x1, 0))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(add(x0, fst(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(add(x0, fst(x1, nil))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(add(x0, fst(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(add(x0, fst(from(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(add(x0, fst(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(add(x0, fst(len(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(add(x0, fst(0, x2))) -> c15(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(add(x0, fst(s(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(add(x0, fst(nil, x2))) -> c15(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(add(x0, fst(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(add(fst(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(from(z0), fst(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(add(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(len(z0), fst(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(0, fst(x1, x2))) -> c15(A__ADD(0, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(s(z0), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(nil, fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_1, c15_2, c15_1, c11_2, c12_2, c14_2 ---------------------------------------- (251) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(add(x0, from(z0))) -> c15(A__ADD(mark(x0), a__from(mark(z0))), MARK(from(z0))) by MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(add(x0, from(from(z0)))) -> c15(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(add(x0, from(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(add(x0, from(len(z0)))) -> c15(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(add(x0, from(0))) -> c15(A__ADD(mark(x0), a__from(0)), MARK(from(0))) MARK(add(x0, from(s(z0)))) -> c15(A__ADD(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(add(x0, from(nil))) -> c15(A__ADD(mark(x0), a__from(nil)), MARK(from(nil))) MARK(add(x0, from(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(add(fst(z0, z1), from(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(from(z0), from(x1))) -> c15(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(add(z0, z1), from(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(len(z0), from(x1))) -> c15(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(0, from(x1))) -> c15(A__ADD(0, a__from(mark(x1))), MARK(from(x1))) MARK(add(s(z0), from(x1))) -> c15(A__ADD(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(add(nil, from(x1))) -> c15(A__ADD(nil, a__from(mark(x1))), MARK(from(x1))) MARK(add(cons(z0, z1), from(x1))) -> c15(A__ADD(cons(mark(z0), z1), a__from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(MARK(from(x1))) ---------------------------------------- (252) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(add(add(x0, x1), x2)) -> c14(MARK(add(x0, x1))) MARK(add(len(fst(z0, z1)), x1)) -> c14(A__ADD(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(add(len(from(z0)), x1)) -> c14(A__ADD(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(add(len(add(z0, z1)), x1)) -> c14(A__ADD(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(add(len(len(z0)), x1)) -> c14(A__ADD(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(add(len(0), x1)) -> c14(A__ADD(a__len(0), mark(x1)), MARK(len(0))) MARK(add(len(s(z0)), x1)) -> c14(A__ADD(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(add(len(nil), x1)) -> c14(A__ADD(a__len(nil), mark(x1)), MARK(len(nil))) MARK(add(len(cons(z0, z1)), x1)) -> c14(A__ADD(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(add(len(x0), x1)) -> c14(MARK(len(x0))) MARK(add(x0, fst(x1, x2))) -> c15(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(add(x0, fst(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(add(x0, fst(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(add(x0, fst(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(add(x0, fst(x1, 0))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(add(x0, fst(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(add(x0, fst(x1, nil))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(add(x0, fst(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(add(x0, fst(from(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(add(x0, fst(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(add(x0, fst(len(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(add(x0, fst(0, x2))) -> c15(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(add(x0, fst(s(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(add(x0, fst(nil, x2))) -> c15(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(add(x0, fst(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(add(fst(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(from(z0), fst(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(add(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(len(z0), fst(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(0, fst(x1, x2))) -> c15(A__ADD(0, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(s(z0), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(nil, fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(add(x0, from(from(z0)))) -> c15(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(add(x0, from(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(add(x0, from(len(z0)))) -> c15(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(add(x0, from(0))) -> c15(A__ADD(mark(x0), a__from(0)), MARK(from(0))) MARK(add(x0, from(s(z0)))) -> c15(A__ADD(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(add(x0, from(nil))) -> c15(A__ADD(mark(x0), a__from(nil)), MARK(from(nil))) MARK(add(x0, from(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(add(fst(z0, z1), from(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(from(z0), from(x1))) -> c15(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(add(z0, z1), from(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(len(z0), from(x1))) -> c15(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(0, from(x1))) -> c15(A__ADD(0, a__from(mark(x1))), MARK(from(x1))) MARK(add(s(z0), from(x1))) -> c15(A__ADD(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(add(nil, from(x1))) -> c15(A__ADD(nil, a__from(mark(x1))), MARK(from(x1))) MARK(add(cons(z0, z1), from(x1))) -> c15(A__ADD(cons(mark(z0), z1), a__from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(MARK(from(x1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(add(add(x0, x1), x2)) -> c14(MARK(add(x0, x1))) MARK(add(len(fst(z0, z1)), x1)) -> c14(A__ADD(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(add(len(from(z0)), x1)) -> c14(A__ADD(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(add(len(add(z0, z1)), x1)) -> c14(A__ADD(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(add(len(len(z0)), x1)) -> c14(A__ADD(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(add(len(0), x1)) -> c14(A__ADD(a__len(0), mark(x1)), MARK(len(0))) MARK(add(len(s(z0)), x1)) -> c14(A__ADD(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(add(len(nil), x1)) -> c14(A__ADD(a__len(nil), mark(x1)), MARK(len(nil))) MARK(add(len(cons(z0, z1)), x1)) -> c14(A__ADD(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(add(len(x0), x1)) -> c14(MARK(len(x0))) MARK(add(x0, fst(x1, x2))) -> c15(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(add(x0, fst(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(add(x0, fst(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(add(x0, fst(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(add(x0, fst(x1, 0))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(add(x0, fst(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(add(x0, fst(x1, nil))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(add(x0, fst(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(add(x0, fst(from(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(add(x0, fst(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(add(x0, fst(len(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(add(x0, fst(0, x2))) -> c15(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(add(x0, fst(s(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(add(x0, fst(nil, x2))) -> c15(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(add(x0, fst(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(add(fst(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(from(z0), fst(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(add(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(len(z0), fst(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(0, fst(x1, x2))) -> c15(A__ADD(0, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(s(z0), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(nil, fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(add(x0, from(from(z0)))) -> c15(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(add(x0, from(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(add(x0, from(len(z0)))) -> c15(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(add(x0, from(0))) -> c15(A__ADD(mark(x0), a__from(0)), MARK(from(0))) MARK(add(x0, from(s(z0)))) -> c15(A__ADD(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(add(x0, from(nil))) -> c15(A__ADD(mark(x0), a__from(nil)), MARK(from(nil))) MARK(add(x0, from(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(add(fst(z0, z1), from(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(from(z0), from(x1))) -> c15(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(add(z0, z1), from(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(len(z0), from(x1))) -> c15(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(0, from(x1))) -> c15(A__ADD(0, a__from(mark(x1))), MARK(from(x1))) MARK(add(s(z0), from(x1))) -> c15(A__ADD(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(add(nil, from(x1))) -> c15(A__ADD(nil, a__from(mark(x1))), MARK(from(x1))) MARK(add(cons(z0, z1), from(x1))) -> c15(A__ADD(cons(mark(z0), z1), a__from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(MARK(from(x1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_1, c15_2, c15_1, c11_2, c12_2, c14_2 ---------------------------------------- (253) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (254) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(add(add(x0, x1), x2)) -> c14(MARK(add(x0, x1))) MARK(add(len(fst(z0, z1)), x1)) -> c14(A__ADD(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(add(len(from(z0)), x1)) -> c14(A__ADD(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(add(len(add(z0, z1)), x1)) -> c14(A__ADD(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(add(len(len(z0)), x1)) -> c14(A__ADD(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(add(len(0), x1)) -> c14(A__ADD(a__len(0), mark(x1)), MARK(len(0))) MARK(add(len(s(z0)), x1)) -> c14(A__ADD(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(add(len(nil), x1)) -> c14(A__ADD(a__len(nil), mark(x1)), MARK(len(nil))) MARK(add(len(cons(z0, z1)), x1)) -> c14(A__ADD(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(add(len(x0), x1)) -> c14(MARK(len(x0))) MARK(add(x0, fst(x1, x2))) -> c15(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(add(x0, fst(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(add(x0, fst(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(add(x0, fst(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(add(x0, fst(x1, 0))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(add(x0, fst(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(add(x0, fst(x1, nil))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(add(x0, fst(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(add(x0, fst(from(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(add(x0, fst(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(add(x0, fst(len(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(add(x0, fst(0, x2))) -> c15(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(add(x0, fst(s(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(add(x0, fst(nil, x2))) -> c15(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(add(x0, fst(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(add(fst(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(from(z0), fst(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(add(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(len(z0), fst(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(0, fst(x1, x2))) -> c15(A__ADD(0, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(s(z0), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(nil, fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(add(x0, from(from(z0)))) -> c15(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(add(x0, from(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(add(x0, from(len(z0)))) -> c15(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(add(x0, from(0))) -> c15(A__ADD(mark(x0), a__from(0)), MARK(from(0))) MARK(add(x0, from(s(z0)))) -> c15(A__ADD(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(add(x0, from(nil))) -> c15(A__ADD(mark(x0), a__from(nil)), MARK(from(nil))) MARK(add(x0, from(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(add(fst(z0, z1), from(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(from(z0), from(x1))) -> c15(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(add(z0, z1), from(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(len(z0), from(x1))) -> c15(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(0, from(x1))) -> c15(A__ADD(0, a__from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(MARK(from(x1))) MARK(add(s(z0), from(x1))) -> c15(MARK(from(x1))) MARK(add(nil, from(x1))) -> c15(MARK(from(x1))) MARK(add(cons(z0, z1), from(x1))) -> c15(MARK(from(x1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(add(add(x0, x1), x2)) -> c14(MARK(add(x0, x1))) MARK(add(len(fst(z0, z1)), x1)) -> c14(A__ADD(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(add(len(from(z0)), x1)) -> c14(A__ADD(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(add(len(add(z0, z1)), x1)) -> c14(A__ADD(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(add(len(len(z0)), x1)) -> c14(A__ADD(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(add(len(0), x1)) -> c14(A__ADD(a__len(0), mark(x1)), MARK(len(0))) MARK(add(len(s(z0)), x1)) -> c14(A__ADD(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(add(len(nil), x1)) -> c14(A__ADD(a__len(nil), mark(x1)), MARK(len(nil))) MARK(add(len(cons(z0, z1)), x1)) -> c14(A__ADD(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(add(len(x0), x1)) -> c14(MARK(len(x0))) MARK(add(x0, fst(x1, x2))) -> c15(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(add(x0, fst(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(add(x0, fst(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(add(x0, fst(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(add(x0, fst(x1, 0))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(add(x0, fst(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(add(x0, fst(x1, nil))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(add(x0, fst(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(add(x0, fst(from(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(add(x0, fst(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(add(x0, fst(len(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(add(x0, fst(0, x2))) -> c15(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(add(x0, fst(s(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(add(x0, fst(nil, x2))) -> c15(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(add(x0, fst(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(add(fst(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(from(z0), fst(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(add(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(len(z0), fst(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(0, fst(x1, x2))) -> c15(A__ADD(0, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(s(z0), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(nil, fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(add(x0, from(from(z0)))) -> c15(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(add(x0, from(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(add(x0, from(len(z0)))) -> c15(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(add(x0, from(0))) -> c15(A__ADD(mark(x0), a__from(0)), MARK(from(0))) MARK(add(x0, from(s(z0)))) -> c15(A__ADD(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(add(x0, from(nil))) -> c15(A__ADD(mark(x0), a__from(nil)), MARK(from(nil))) MARK(add(x0, from(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(add(fst(z0, z1), from(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(from(z0), from(x1))) -> c15(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(add(z0, z1), from(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(len(z0), from(x1))) -> c15(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(0, from(x1))) -> c15(A__ADD(0, a__from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(MARK(from(x1))) MARK(add(s(z0), from(x1))) -> c15(MARK(from(x1))) MARK(add(nil, from(x1))) -> c15(MARK(from(x1))) MARK(add(cons(z0, z1), from(x1))) -> c15(MARK(from(x1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_1, c15_2, c15_1, c11_2, c12_2, c14_2 ---------------------------------------- (255) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(add(x0, add(z0, z1))) -> c15(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) by MARK(add(x0, add(x1, x2))) -> c15(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(x0, add(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(add(x0, add(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(add(x0, add(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(add(x0, add(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(add(x0, add(x1, 0))) -> c15(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(add(x0, add(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(add(x0, add(x1, nil))) -> c15(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(add(x0, add(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(add(x0, add(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(add(x0, add(from(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(add(x0, add(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(add(x0, add(len(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(add(x0, add(0, x2))) -> c15(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(add(x0, add(s(z0), x2))) -> c15(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(add(x0, add(nil, x2))) -> c15(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(add(x0, add(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(add(fst(z0, z1), add(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(from(z0), add(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(add(z0, z1), add(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(len(z0), add(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(0, add(x1, x2))) -> c15(A__ADD(0, a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(s(z0), add(x1, x2))) -> c15(A__ADD(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(nil, add(x1, x2))) -> c15(A__ADD(nil, a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(cons(z0, z1), add(x1, x2))) -> c15(A__ADD(cons(mark(z0), z1), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) ---------------------------------------- (256) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(add(add(x0, x1), x2)) -> c14(MARK(add(x0, x1))) MARK(add(len(fst(z0, z1)), x1)) -> c14(A__ADD(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(add(len(from(z0)), x1)) -> c14(A__ADD(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(add(len(add(z0, z1)), x1)) -> c14(A__ADD(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(add(len(len(z0)), x1)) -> c14(A__ADD(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(add(len(0), x1)) -> c14(A__ADD(a__len(0), mark(x1)), MARK(len(0))) MARK(add(len(s(z0)), x1)) -> c14(A__ADD(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(add(len(nil), x1)) -> c14(A__ADD(a__len(nil), mark(x1)), MARK(len(nil))) MARK(add(len(cons(z0, z1)), x1)) -> c14(A__ADD(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(add(len(x0), x1)) -> c14(MARK(len(x0))) MARK(add(x0, fst(x1, x2))) -> c15(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(add(x0, fst(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(add(x0, fst(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(add(x0, fst(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(add(x0, fst(x1, 0))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(add(x0, fst(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(add(x0, fst(x1, nil))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(add(x0, fst(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(add(x0, fst(from(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(add(x0, fst(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(add(x0, fst(len(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(add(x0, fst(0, x2))) -> c15(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(add(x0, fst(s(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(add(x0, fst(nil, x2))) -> c15(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(add(x0, fst(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(add(fst(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(from(z0), fst(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(add(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(len(z0), fst(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(0, fst(x1, x2))) -> c15(A__ADD(0, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(s(z0), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(nil, fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(add(x0, from(from(z0)))) -> c15(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(add(x0, from(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(add(x0, from(len(z0)))) -> c15(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(add(x0, from(0))) -> c15(A__ADD(mark(x0), a__from(0)), MARK(from(0))) MARK(add(x0, from(s(z0)))) -> c15(A__ADD(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(add(x0, from(nil))) -> c15(A__ADD(mark(x0), a__from(nil)), MARK(from(nil))) MARK(add(x0, from(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(add(fst(z0, z1), from(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(from(z0), from(x1))) -> c15(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(add(z0, z1), from(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(len(z0), from(x1))) -> c15(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(0, from(x1))) -> c15(A__ADD(0, a__from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(MARK(from(x1))) MARK(add(s(z0), from(x1))) -> c15(MARK(from(x1))) MARK(add(nil, from(x1))) -> c15(MARK(from(x1))) MARK(add(cons(z0, z1), from(x1))) -> c15(MARK(from(x1))) MARK(add(x0, add(x1, x2))) -> c15(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(x0, add(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(add(x0, add(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(add(x0, add(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(add(x0, add(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(add(x0, add(x1, 0))) -> c15(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(add(x0, add(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(add(x0, add(x1, nil))) -> c15(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(add(x0, add(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(add(x0, add(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(add(x0, add(from(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(add(x0, add(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(add(x0, add(len(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(add(x0, add(0, x2))) -> c15(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(add(x0, add(s(z0), x2))) -> c15(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(add(x0, add(nil, x2))) -> c15(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(add(x0, add(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(add(fst(z0, z1), add(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(from(z0), add(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(add(z0, z1), add(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(len(z0), add(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(0, add(x1, x2))) -> c15(A__ADD(0, a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(s(z0), add(x1, x2))) -> c15(A__ADD(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(nil, add(x1, x2))) -> c15(A__ADD(nil, a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(cons(z0, z1), add(x1, x2))) -> c15(A__ADD(cons(mark(z0), z1), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(add(add(x0, x1), x2)) -> c14(MARK(add(x0, x1))) MARK(add(len(fst(z0, z1)), x1)) -> c14(A__ADD(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(add(len(from(z0)), x1)) -> c14(A__ADD(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(add(len(add(z0, z1)), x1)) -> c14(A__ADD(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(add(len(len(z0)), x1)) -> c14(A__ADD(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(add(len(0), x1)) -> c14(A__ADD(a__len(0), mark(x1)), MARK(len(0))) MARK(add(len(s(z0)), x1)) -> c14(A__ADD(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(add(len(nil), x1)) -> c14(A__ADD(a__len(nil), mark(x1)), MARK(len(nil))) MARK(add(len(cons(z0, z1)), x1)) -> c14(A__ADD(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(add(len(x0), x1)) -> c14(MARK(len(x0))) MARK(add(x0, fst(x1, x2))) -> c15(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(add(x0, fst(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(add(x0, fst(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(add(x0, fst(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(add(x0, fst(x1, 0))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(add(x0, fst(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(add(x0, fst(x1, nil))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(add(x0, fst(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(add(x0, fst(from(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(add(x0, fst(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(add(x0, fst(len(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(add(x0, fst(0, x2))) -> c15(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(add(x0, fst(s(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(add(x0, fst(nil, x2))) -> c15(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(add(x0, fst(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(add(fst(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(from(z0), fst(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(add(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(len(z0), fst(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(0, fst(x1, x2))) -> c15(A__ADD(0, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(s(z0), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(nil, fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(add(x0, from(from(z0)))) -> c15(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(add(x0, from(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(add(x0, from(len(z0)))) -> c15(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(add(x0, from(0))) -> c15(A__ADD(mark(x0), a__from(0)), MARK(from(0))) MARK(add(x0, from(s(z0)))) -> c15(A__ADD(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(add(x0, from(nil))) -> c15(A__ADD(mark(x0), a__from(nil)), MARK(from(nil))) MARK(add(x0, from(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(add(fst(z0, z1), from(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(from(z0), from(x1))) -> c15(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(add(z0, z1), from(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(len(z0), from(x1))) -> c15(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(0, from(x1))) -> c15(A__ADD(0, a__from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(MARK(from(x1))) MARK(add(s(z0), from(x1))) -> c15(MARK(from(x1))) MARK(add(nil, from(x1))) -> c15(MARK(from(x1))) MARK(add(cons(z0, z1), from(x1))) -> c15(MARK(from(x1))) MARK(add(x0, add(x1, x2))) -> c15(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(x0, add(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(add(x0, add(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(add(x0, add(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(add(x0, add(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(add(x0, add(x1, 0))) -> c15(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(add(x0, add(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(add(x0, add(x1, nil))) -> c15(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(add(x0, add(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(add(x0, add(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(add(x0, add(from(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(add(x0, add(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(add(x0, add(len(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(add(x0, add(0, x2))) -> c15(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(add(x0, add(s(z0), x2))) -> c15(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(add(x0, add(nil, x2))) -> c15(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(add(x0, add(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(add(fst(z0, z1), add(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(from(z0), add(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(add(z0, z1), add(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(len(z0), add(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(0, add(x1, x2))) -> c15(A__ADD(0, a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(s(z0), add(x1, x2))) -> c15(A__ADD(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(nil, add(x1, x2))) -> c15(A__ADD(nil, a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(cons(z0, z1), add(x1, x2))) -> c15(A__ADD(cons(mark(z0), z1), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_1, c15_2, c15_1, c11_2, c12_2, c14_2 ---------------------------------------- (257) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (258) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(add(add(x0, x1), x2)) -> c14(MARK(add(x0, x1))) MARK(add(len(fst(z0, z1)), x1)) -> c14(A__ADD(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(add(len(from(z0)), x1)) -> c14(A__ADD(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(add(len(add(z0, z1)), x1)) -> c14(A__ADD(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(add(len(len(z0)), x1)) -> c14(A__ADD(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(add(len(0), x1)) -> c14(A__ADD(a__len(0), mark(x1)), MARK(len(0))) MARK(add(len(s(z0)), x1)) -> c14(A__ADD(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(add(len(nil), x1)) -> c14(A__ADD(a__len(nil), mark(x1)), MARK(len(nil))) MARK(add(len(cons(z0, z1)), x1)) -> c14(A__ADD(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(add(len(x0), x1)) -> c14(MARK(len(x0))) MARK(add(x0, fst(x1, x2))) -> c15(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(add(x0, fst(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(add(x0, fst(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(add(x0, fst(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(add(x0, fst(x1, 0))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(add(x0, fst(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(add(x0, fst(x1, nil))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(add(x0, fst(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(add(x0, fst(from(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(add(x0, fst(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(add(x0, fst(len(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(add(x0, fst(0, x2))) -> c15(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(add(x0, fst(s(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(add(x0, fst(nil, x2))) -> c15(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(add(x0, fst(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(add(fst(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(from(z0), fst(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(add(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(len(z0), fst(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(0, fst(x1, x2))) -> c15(A__ADD(0, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(s(z0), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(nil, fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(add(x0, from(from(z0)))) -> c15(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(add(x0, from(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(add(x0, from(len(z0)))) -> c15(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(add(x0, from(0))) -> c15(A__ADD(mark(x0), a__from(0)), MARK(from(0))) MARK(add(x0, from(s(z0)))) -> c15(A__ADD(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(add(x0, from(nil))) -> c15(A__ADD(mark(x0), a__from(nil)), MARK(from(nil))) MARK(add(x0, from(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(add(fst(z0, z1), from(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(from(z0), from(x1))) -> c15(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(add(z0, z1), from(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(len(z0), from(x1))) -> c15(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(0, from(x1))) -> c15(A__ADD(0, a__from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(MARK(from(x1))) MARK(add(s(z0), from(x1))) -> c15(MARK(from(x1))) MARK(add(nil, from(x1))) -> c15(MARK(from(x1))) MARK(add(cons(z0, z1), from(x1))) -> c15(MARK(from(x1))) MARK(add(x0, add(x1, x2))) -> c15(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(x0, add(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(add(x0, add(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(add(x0, add(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(add(x0, add(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(add(x0, add(x1, 0))) -> c15(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(add(x0, add(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(add(x0, add(x1, nil))) -> c15(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(add(x0, add(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(add(x0, add(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(add(x0, add(from(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(add(x0, add(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(add(x0, add(len(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(add(x0, add(0, x2))) -> c15(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(add(x0, add(s(z0), x2))) -> c15(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(add(x0, add(nil, x2))) -> c15(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(add(x0, add(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(add(fst(z0, z1), add(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(from(z0), add(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(add(z0, z1), add(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(len(z0), add(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(0, add(x1, x2))) -> c15(A__ADD(0, a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(s(z0), add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(nil, add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(cons(z0, z1), add(x1, x2))) -> c15(MARK(add(x1, x2))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(add(add(x0, x1), x2)) -> c14(MARK(add(x0, x1))) MARK(add(len(fst(z0, z1)), x1)) -> c14(A__ADD(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(add(len(from(z0)), x1)) -> c14(A__ADD(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(add(len(add(z0, z1)), x1)) -> c14(A__ADD(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(add(len(len(z0)), x1)) -> c14(A__ADD(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(add(len(0), x1)) -> c14(A__ADD(a__len(0), mark(x1)), MARK(len(0))) MARK(add(len(s(z0)), x1)) -> c14(A__ADD(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(add(len(nil), x1)) -> c14(A__ADD(a__len(nil), mark(x1)), MARK(len(nil))) MARK(add(len(cons(z0, z1)), x1)) -> c14(A__ADD(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(add(len(x0), x1)) -> c14(MARK(len(x0))) MARK(add(x0, fst(x1, x2))) -> c15(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(add(x0, fst(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(add(x0, fst(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(add(x0, fst(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(add(x0, fst(x1, 0))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(add(x0, fst(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(add(x0, fst(x1, nil))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(add(x0, fst(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(add(x0, fst(from(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(add(x0, fst(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(add(x0, fst(len(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(add(x0, fst(0, x2))) -> c15(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(add(x0, fst(s(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(add(x0, fst(nil, x2))) -> c15(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(add(x0, fst(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(add(fst(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(from(z0), fst(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(add(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(len(z0), fst(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(0, fst(x1, x2))) -> c15(A__ADD(0, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(s(z0), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(nil, fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(add(x0, from(from(z0)))) -> c15(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(add(x0, from(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(add(x0, from(len(z0)))) -> c15(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(add(x0, from(0))) -> c15(A__ADD(mark(x0), a__from(0)), MARK(from(0))) MARK(add(x0, from(s(z0)))) -> c15(A__ADD(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(add(x0, from(nil))) -> c15(A__ADD(mark(x0), a__from(nil)), MARK(from(nil))) MARK(add(x0, from(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(add(fst(z0, z1), from(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(from(z0), from(x1))) -> c15(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(add(z0, z1), from(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(len(z0), from(x1))) -> c15(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(0, from(x1))) -> c15(A__ADD(0, a__from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(MARK(from(x1))) MARK(add(s(z0), from(x1))) -> c15(MARK(from(x1))) MARK(add(nil, from(x1))) -> c15(MARK(from(x1))) MARK(add(cons(z0, z1), from(x1))) -> c15(MARK(from(x1))) MARK(add(x0, add(x1, x2))) -> c15(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(x0, add(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(add(x0, add(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(add(x0, add(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(add(x0, add(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(add(x0, add(x1, 0))) -> c15(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(add(x0, add(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(add(x0, add(x1, nil))) -> c15(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(add(x0, add(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(add(x0, add(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(add(x0, add(from(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(add(x0, add(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(add(x0, add(len(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(add(x0, add(0, x2))) -> c15(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(add(x0, add(s(z0), x2))) -> c15(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(add(x0, add(nil, x2))) -> c15(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(add(x0, add(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(add(fst(z0, z1), add(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(from(z0), add(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(add(z0, z1), add(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(len(z0), add(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(0, add(x1, x2))) -> c15(A__ADD(0, a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(s(z0), add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(nil, add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(cons(z0, z1), add(x1, x2))) -> c15(MARK(add(x1, x2))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_1, c15_2, c15_1, c11_2, c12_2, c14_2 ---------------------------------------- (259) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(add(x0, len(z0))) -> c15(A__ADD(mark(x0), a__len(mark(z0))), MARK(len(z0))) by MARK(add(x0, len(x1))) -> c15(A__ADD(mark(x0), len(mark(x1))), MARK(len(x1))) MARK(add(x0, len(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(add(x0, len(from(z0)))) -> c15(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(add(x0, len(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(add(x0, len(len(z0)))) -> c15(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(add(x0, len(0))) -> c15(A__ADD(mark(x0), a__len(0)), MARK(len(0))) MARK(add(x0, len(s(z0)))) -> c15(A__ADD(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(add(x0, len(nil))) -> c15(A__ADD(mark(x0), a__len(nil)), MARK(len(nil))) MARK(add(x0, len(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(add(fst(z0, z1), len(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(add(from(z0), len(x1))) -> c15(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(add(add(z0, z1), len(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(add(len(z0), len(x1))) -> c15(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(add(0, len(x1))) -> c15(A__ADD(0, a__len(mark(x1))), MARK(len(x1))) MARK(add(s(z0), len(x1))) -> c15(A__ADD(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(add(nil, len(x1))) -> c15(A__ADD(nil, a__len(mark(x1))), MARK(len(x1))) MARK(add(cons(z0, z1), len(x1))) -> c15(A__ADD(cons(mark(z0), z1), a__len(mark(x1))), MARK(len(x1))) MARK(add(x0, len(x1))) -> c15(MARK(len(x1))) ---------------------------------------- (260) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(add(add(x0, x1), x2)) -> c14(MARK(add(x0, x1))) MARK(add(len(fst(z0, z1)), x1)) -> c14(A__ADD(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(add(len(from(z0)), x1)) -> c14(A__ADD(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(add(len(add(z0, z1)), x1)) -> c14(A__ADD(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(add(len(len(z0)), x1)) -> c14(A__ADD(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(add(len(0), x1)) -> c14(A__ADD(a__len(0), mark(x1)), MARK(len(0))) MARK(add(len(s(z0)), x1)) -> c14(A__ADD(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(add(len(nil), x1)) -> c14(A__ADD(a__len(nil), mark(x1)), MARK(len(nil))) MARK(add(len(cons(z0, z1)), x1)) -> c14(A__ADD(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(add(len(x0), x1)) -> c14(MARK(len(x0))) MARK(add(x0, fst(x1, x2))) -> c15(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(add(x0, fst(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(add(x0, fst(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(add(x0, fst(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(add(x0, fst(x1, 0))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(add(x0, fst(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(add(x0, fst(x1, nil))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(add(x0, fst(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(add(x0, fst(from(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(add(x0, fst(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(add(x0, fst(len(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(add(x0, fst(0, x2))) -> c15(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(add(x0, fst(s(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(add(x0, fst(nil, x2))) -> c15(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(add(x0, fst(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(add(fst(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(from(z0), fst(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(add(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(len(z0), fst(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(0, fst(x1, x2))) -> c15(A__ADD(0, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(s(z0), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(nil, fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(add(x0, from(from(z0)))) -> c15(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(add(x0, from(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(add(x0, from(len(z0)))) -> c15(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(add(x0, from(0))) -> c15(A__ADD(mark(x0), a__from(0)), MARK(from(0))) MARK(add(x0, from(s(z0)))) -> c15(A__ADD(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(add(x0, from(nil))) -> c15(A__ADD(mark(x0), a__from(nil)), MARK(from(nil))) MARK(add(x0, from(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(add(fst(z0, z1), from(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(from(z0), from(x1))) -> c15(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(add(z0, z1), from(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(len(z0), from(x1))) -> c15(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(0, from(x1))) -> c15(A__ADD(0, a__from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(MARK(from(x1))) MARK(add(s(z0), from(x1))) -> c15(MARK(from(x1))) MARK(add(nil, from(x1))) -> c15(MARK(from(x1))) MARK(add(cons(z0, z1), from(x1))) -> c15(MARK(from(x1))) MARK(add(x0, add(x1, x2))) -> c15(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(x0, add(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(add(x0, add(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(add(x0, add(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(add(x0, add(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(add(x0, add(x1, 0))) -> c15(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(add(x0, add(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(add(x0, add(x1, nil))) -> c15(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(add(x0, add(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(add(x0, add(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(add(x0, add(from(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(add(x0, add(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(add(x0, add(len(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(add(x0, add(0, x2))) -> c15(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(add(x0, add(s(z0), x2))) -> c15(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(add(x0, add(nil, x2))) -> c15(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(add(x0, add(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(add(fst(z0, z1), add(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(from(z0), add(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(add(z0, z1), add(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(len(z0), add(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(0, add(x1, x2))) -> c15(A__ADD(0, a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(s(z0), add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(nil, add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(cons(z0, z1), add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(x0, len(x1))) -> c15(A__ADD(mark(x0), len(mark(x1))), MARK(len(x1))) MARK(add(x0, len(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(add(x0, len(from(z0)))) -> c15(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(add(x0, len(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(add(x0, len(len(z0)))) -> c15(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(add(x0, len(0))) -> c15(A__ADD(mark(x0), a__len(0)), MARK(len(0))) MARK(add(x0, len(s(z0)))) -> c15(A__ADD(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(add(x0, len(nil))) -> c15(A__ADD(mark(x0), a__len(nil)), MARK(len(nil))) MARK(add(x0, len(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(add(fst(z0, z1), len(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(add(from(z0), len(x1))) -> c15(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(add(add(z0, z1), len(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(add(len(z0), len(x1))) -> c15(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(add(0, len(x1))) -> c15(A__ADD(0, a__len(mark(x1))), MARK(len(x1))) MARK(add(s(z0), len(x1))) -> c15(A__ADD(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(add(nil, len(x1))) -> c15(A__ADD(nil, a__len(mark(x1))), MARK(len(x1))) MARK(add(cons(z0, z1), len(x1))) -> c15(A__ADD(cons(mark(z0), z1), a__len(mark(x1))), MARK(len(x1))) MARK(add(x0, len(x1))) -> c15(MARK(len(x1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(add(add(x0, x1), x2)) -> c14(MARK(add(x0, x1))) MARK(add(len(fst(z0, z1)), x1)) -> c14(A__ADD(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(add(len(from(z0)), x1)) -> c14(A__ADD(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(add(len(add(z0, z1)), x1)) -> c14(A__ADD(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(add(len(len(z0)), x1)) -> c14(A__ADD(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(add(len(0), x1)) -> c14(A__ADD(a__len(0), mark(x1)), MARK(len(0))) MARK(add(len(s(z0)), x1)) -> c14(A__ADD(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(add(len(nil), x1)) -> c14(A__ADD(a__len(nil), mark(x1)), MARK(len(nil))) MARK(add(len(cons(z0, z1)), x1)) -> c14(A__ADD(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(add(len(x0), x1)) -> c14(MARK(len(x0))) MARK(add(x0, fst(x1, x2))) -> c15(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(add(x0, fst(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(add(x0, fst(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(add(x0, fst(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(add(x0, fst(x1, 0))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(add(x0, fst(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(add(x0, fst(x1, nil))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(add(x0, fst(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(add(x0, fst(from(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(add(x0, fst(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(add(x0, fst(len(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(add(x0, fst(0, x2))) -> c15(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(add(x0, fst(s(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(add(x0, fst(nil, x2))) -> c15(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(add(x0, fst(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(add(fst(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(from(z0), fst(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(add(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(len(z0), fst(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(0, fst(x1, x2))) -> c15(A__ADD(0, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(s(z0), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(nil, fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(add(x0, from(from(z0)))) -> c15(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(add(x0, from(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(add(x0, from(len(z0)))) -> c15(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(add(x0, from(0))) -> c15(A__ADD(mark(x0), a__from(0)), MARK(from(0))) MARK(add(x0, from(s(z0)))) -> c15(A__ADD(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(add(x0, from(nil))) -> c15(A__ADD(mark(x0), a__from(nil)), MARK(from(nil))) MARK(add(x0, from(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(add(fst(z0, z1), from(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(from(z0), from(x1))) -> c15(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(add(z0, z1), from(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(len(z0), from(x1))) -> c15(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(0, from(x1))) -> c15(A__ADD(0, a__from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(MARK(from(x1))) MARK(add(s(z0), from(x1))) -> c15(MARK(from(x1))) MARK(add(nil, from(x1))) -> c15(MARK(from(x1))) MARK(add(cons(z0, z1), from(x1))) -> c15(MARK(from(x1))) MARK(add(x0, add(x1, x2))) -> c15(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(x0, add(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(add(x0, add(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(add(x0, add(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(add(x0, add(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(add(x0, add(x1, 0))) -> c15(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(add(x0, add(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(add(x0, add(x1, nil))) -> c15(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(add(x0, add(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(add(x0, add(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(add(x0, add(from(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(add(x0, add(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(add(x0, add(len(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(add(x0, add(0, x2))) -> c15(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(add(x0, add(s(z0), x2))) -> c15(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(add(x0, add(nil, x2))) -> c15(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(add(x0, add(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(add(fst(z0, z1), add(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(from(z0), add(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(add(z0, z1), add(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(len(z0), add(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(0, add(x1, x2))) -> c15(A__ADD(0, a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(s(z0), add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(nil, add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(cons(z0, z1), add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(x0, len(x1))) -> c15(A__ADD(mark(x0), len(mark(x1))), MARK(len(x1))) MARK(add(x0, len(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(add(x0, len(from(z0)))) -> c15(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(add(x0, len(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(add(x0, len(len(z0)))) -> c15(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(add(x0, len(0))) -> c15(A__ADD(mark(x0), a__len(0)), MARK(len(0))) MARK(add(x0, len(s(z0)))) -> c15(A__ADD(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(add(x0, len(nil))) -> c15(A__ADD(mark(x0), a__len(nil)), MARK(len(nil))) MARK(add(x0, len(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(add(fst(z0, z1), len(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(add(from(z0), len(x1))) -> c15(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(add(add(z0, z1), len(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(add(len(z0), len(x1))) -> c15(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(add(0, len(x1))) -> c15(A__ADD(0, a__len(mark(x1))), MARK(len(x1))) MARK(add(s(z0), len(x1))) -> c15(A__ADD(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(add(nil, len(x1))) -> c15(A__ADD(nil, a__len(mark(x1))), MARK(len(x1))) MARK(add(cons(z0, z1), len(x1))) -> c15(A__ADD(cons(mark(z0), z1), a__len(mark(x1))), MARK(len(x1))) MARK(add(x0, len(x1))) -> c15(MARK(len(x1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_1, c15_2, c15_1, c11_2, c12_2, c14_2 ---------------------------------------- (261) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (262) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(add(add(x0, x1), x2)) -> c14(MARK(add(x0, x1))) MARK(add(len(fst(z0, z1)), x1)) -> c14(A__ADD(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(add(len(from(z0)), x1)) -> c14(A__ADD(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(add(len(add(z0, z1)), x1)) -> c14(A__ADD(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(add(len(len(z0)), x1)) -> c14(A__ADD(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(add(len(0), x1)) -> c14(A__ADD(a__len(0), mark(x1)), MARK(len(0))) MARK(add(len(s(z0)), x1)) -> c14(A__ADD(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(add(len(nil), x1)) -> c14(A__ADD(a__len(nil), mark(x1)), MARK(len(nil))) MARK(add(len(cons(z0, z1)), x1)) -> c14(A__ADD(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(add(len(x0), x1)) -> c14(MARK(len(x0))) MARK(add(x0, fst(x1, x2))) -> c15(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(add(x0, fst(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(add(x0, fst(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(add(x0, fst(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(add(x0, fst(x1, 0))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(add(x0, fst(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(add(x0, fst(x1, nil))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(add(x0, fst(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(add(x0, fst(from(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(add(x0, fst(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(add(x0, fst(len(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(add(x0, fst(0, x2))) -> c15(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(add(x0, fst(s(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(add(x0, fst(nil, x2))) -> c15(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(add(x0, fst(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(add(fst(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(from(z0), fst(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(add(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(len(z0), fst(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(0, fst(x1, x2))) -> c15(A__ADD(0, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(s(z0), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(nil, fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(add(x0, from(from(z0)))) -> c15(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(add(x0, from(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(add(x0, from(len(z0)))) -> c15(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(add(x0, from(0))) -> c15(A__ADD(mark(x0), a__from(0)), MARK(from(0))) MARK(add(x0, from(s(z0)))) -> c15(A__ADD(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(add(x0, from(nil))) -> c15(A__ADD(mark(x0), a__from(nil)), MARK(from(nil))) MARK(add(x0, from(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(add(fst(z0, z1), from(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(from(z0), from(x1))) -> c15(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(add(z0, z1), from(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(len(z0), from(x1))) -> c15(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(0, from(x1))) -> c15(A__ADD(0, a__from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(MARK(from(x1))) MARK(add(s(z0), from(x1))) -> c15(MARK(from(x1))) MARK(add(nil, from(x1))) -> c15(MARK(from(x1))) MARK(add(cons(z0, z1), from(x1))) -> c15(MARK(from(x1))) MARK(add(x0, add(x1, x2))) -> c15(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(x0, add(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(add(x0, add(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(add(x0, add(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(add(x0, add(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(add(x0, add(x1, 0))) -> c15(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(add(x0, add(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(add(x0, add(x1, nil))) -> c15(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(add(x0, add(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(add(x0, add(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(add(x0, add(from(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(add(x0, add(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(add(x0, add(len(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(add(x0, add(0, x2))) -> c15(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(add(x0, add(s(z0), x2))) -> c15(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(add(x0, add(nil, x2))) -> c15(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(add(x0, add(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(add(fst(z0, z1), add(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(from(z0), add(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(add(z0, z1), add(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(len(z0), add(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(0, add(x1, x2))) -> c15(A__ADD(0, a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(s(z0), add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(nil, add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(cons(z0, z1), add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(x0, len(x1))) -> c15(A__ADD(mark(x0), len(mark(x1))), MARK(len(x1))) MARK(add(x0, len(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(add(x0, len(from(z0)))) -> c15(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(add(x0, len(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(add(x0, len(len(z0)))) -> c15(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(add(x0, len(0))) -> c15(A__ADD(mark(x0), a__len(0)), MARK(len(0))) MARK(add(x0, len(s(z0)))) -> c15(A__ADD(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(add(x0, len(nil))) -> c15(A__ADD(mark(x0), a__len(nil)), MARK(len(nil))) MARK(add(x0, len(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(add(fst(z0, z1), len(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(add(from(z0), len(x1))) -> c15(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(add(add(z0, z1), len(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(add(len(z0), len(x1))) -> c15(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(add(0, len(x1))) -> c15(A__ADD(0, a__len(mark(x1))), MARK(len(x1))) MARK(add(x0, len(x1))) -> c15(MARK(len(x1))) MARK(add(s(z0), len(x1))) -> c15(MARK(len(x1))) MARK(add(nil, len(x1))) -> c15(MARK(len(x1))) MARK(add(cons(z0, z1), len(x1))) -> c15(MARK(len(x1))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(add(add(x0, x1), x2)) -> c14(MARK(add(x0, x1))) MARK(add(len(fst(z0, z1)), x1)) -> c14(A__ADD(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(add(len(from(z0)), x1)) -> c14(A__ADD(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(add(len(add(z0, z1)), x1)) -> c14(A__ADD(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(add(len(len(z0)), x1)) -> c14(A__ADD(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(add(len(0), x1)) -> c14(A__ADD(a__len(0), mark(x1)), MARK(len(0))) MARK(add(len(s(z0)), x1)) -> c14(A__ADD(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(add(len(nil), x1)) -> c14(A__ADD(a__len(nil), mark(x1)), MARK(len(nil))) MARK(add(len(cons(z0, z1)), x1)) -> c14(A__ADD(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(add(len(x0), x1)) -> c14(MARK(len(x0))) MARK(add(x0, fst(x1, x2))) -> c15(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(add(x0, fst(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(add(x0, fst(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(add(x0, fst(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(add(x0, fst(x1, 0))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(add(x0, fst(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(add(x0, fst(x1, nil))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(add(x0, fst(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(add(x0, fst(from(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(add(x0, fst(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(add(x0, fst(len(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(add(x0, fst(0, x2))) -> c15(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(add(x0, fst(s(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(add(x0, fst(nil, x2))) -> c15(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(add(x0, fst(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(add(fst(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(from(z0), fst(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(add(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(len(z0), fst(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(0, fst(x1, x2))) -> c15(A__ADD(0, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(s(z0), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(nil, fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(add(x0, from(from(z0)))) -> c15(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(add(x0, from(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(add(x0, from(len(z0)))) -> c15(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(add(x0, from(0))) -> c15(A__ADD(mark(x0), a__from(0)), MARK(from(0))) MARK(add(x0, from(s(z0)))) -> c15(A__ADD(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(add(x0, from(nil))) -> c15(A__ADD(mark(x0), a__from(nil)), MARK(from(nil))) MARK(add(x0, from(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(add(fst(z0, z1), from(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(from(z0), from(x1))) -> c15(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(add(z0, z1), from(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(len(z0), from(x1))) -> c15(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(0, from(x1))) -> c15(A__ADD(0, a__from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(MARK(from(x1))) MARK(add(s(z0), from(x1))) -> c15(MARK(from(x1))) MARK(add(nil, from(x1))) -> c15(MARK(from(x1))) MARK(add(cons(z0, z1), from(x1))) -> c15(MARK(from(x1))) MARK(add(x0, add(x1, x2))) -> c15(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(x0, add(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(add(x0, add(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(add(x0, add(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(add(x0, add(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(add(x0, add(x1, 0))) -> c15(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(add(x0, add(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(add(x0, add(x1, nil))) -> c15(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(add(x0, add(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(add(x0, add(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(add(x0, add(from(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(add(x0, add(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(add(x0, add(len(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(add(x0, add(0, x2))) -> c15(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(add(x0, add(s(z0), x2))) -> c15(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(add(x0, add(nil, x2))) -> c15(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(add(x0, add(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(add(fst(z0, z1), add(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(from(z0), add(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(add(z0, z1), add(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(len(z0), add(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(0, add(x1, x2))) -> c15(A__ADD(0, a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(s(z0), add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(nil, add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(cons(z0, z1), add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(x0, len(x1))) -> c15(A__ADD(mark(x0), len(mark(x1))), MARK(len(x1))) MARK(add(x0, len(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(add(x0, len(from(z0)))) -> c15(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(add(x0, len(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(add(x0, len(len(z0)))) -> c15(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(add(x0, len(0))) -> c15(A__ADD(mark(x0), a__len(0)), MARK(len(0))) MARK(add(x0, len(s(z0)))) -> c15(A__ADD(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(add(x0, len(nil))) -> c15(A__ADD(mark(x0), a__len(nil)), MARK(len(nil))) MARK(add(x0, len(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(add(fst(z0, z1), len(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(add(from(z0), len(x1))) -> c15(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(add(add(z0, z1), len(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(add(len(z0), len(x1))) -> c15(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(add(0, len(x1))) -> c15(A__ADD(0, a__len(mark(x1))), MARK(len(x1))) MARK(add(x0, len(x1))) -> c15(MARK(len(x1))) MARK(add(s(z0), len(x1))) -> c15(MARK(len(x1))) MARK(add(nil, len(x1))) -> c15(MARK(len(x1))) MARK(add(cons(z0, z1), len(x1))) -> c15(MARK(len(x1))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_1, c15_2, c15_1, c11_2, c12_2, c14_2 ---------------------------------------- (263) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(add(x0, cons(z0, z1))) -> c15(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) by MARK(add(x0, cons(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(add(x0, cons(from(z0), x2))) -> c15(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(add(x0, cons(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(add(x0, cons(len(z0), x2))) -> c15(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(add(x0, cons(0, x2))) -> c15(A__ADD(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(add(x0, cons(s(z0), x2))) -> c15(A__ADD(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(add(x0, cons(nil, x2))) -> c15(A__ADD(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(add(x0, cons(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(add(fst(z0, z1), cons(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(from(z0), cons(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(add(z0, z1), cons(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(len(z0), cons(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(0, cons(x1, x2))) -> c15(A__ADD(0, cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(s(z0), cons(x1, x2))) -> c15(A__ADD(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(nil, cons(x1, x2))) -> c15(A__ADD(nil, cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c15(A__ADD(cons(mark(z0), z1), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(x0, cons(x1, x2))) -> c15(MARK(cons(x1, x2))) ---------------------------------------- (264) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(add(add(x0, x1), x2)) -> c14(MARK(add(x0, x1))) MARK(add(len(fst(z0, z1)), x1)) -> c14(A__ADD(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(add(len(from(z0)), x1)) -> c14(A__ADD(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(add(len(add(z0, z1)), x1)) -> c14(A__ADD(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(add(len(len(z0)), x1)) -> c14(A__ADD(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(add(len(0), x1)) -> c14(A__ADD(a__len(0), mark(x1)), MARK(len(0))) MARK(add(len(s(z0)), x1)) -> c14(A__ADD(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(add(len(nil), x1)) -> c14(A__ADD(a__len(nil), mark(x1)), MARK(len(nil))) MARK(add(len(cons(z0, z1)), x1)) -> c14(A__ADD(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(add(len(x0), x1)) -> c14(MARK(len(x0))) MARK(add(x0, fst(x1, x2))) -> c15(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(add(x0, fst(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(add(x0, fst(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(add(x0, fst(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(add(x0, fst(x1, 0))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(add(x0, fst(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(add(x0, fst(x1, nil))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(add(x0, fst(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(add(x0, fst(from(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(add(x0, fst(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(add(x0, fst(len(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(add(x0, fst(0, x2))) -> c15(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(add(x0, fst(s(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(add(x0, fst(nil, x2))) -> c15(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(add(x0, fst(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(add(fst(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(from(z0), fst(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(add(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(len(z0), fst(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(0, fst(x1, x2))) -> c15(A__ADD(0, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(s(z0), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(nil, fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(add(x0, from(from(z0)))) -> c15(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(add(x0, from(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(add(x0, from(len(z0)))) -> c15(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(add(x0, from(0))) -> c15(A__ADD(mark(x0), a__from(0)), MARK(from(0))) MARK(add(x0, from(s(z0)))) -> c15(A__ADD(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(add(x0, from(nil))) -> c15(A__ADD(mark(x0), a__from(nil)), MARK(from(nil))) MARK(add(x0, from(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(add(fst(z0, z1), from(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(from(z0), from(x1))) -> c15(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(add(z0, z1), from(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(len(z0), from(x1))) -> c15(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(0, from(x1))) -> c15(A__ADD(0, a__from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(MARK(from(x1))) MARK(add(s(z0), from(x1))) -> c15(MARK(from(x1))) MARK(add(nil, from(x1))) -> c15(MARK(from(x1))) MARK(add(cons(z0, z1), from(x1))) -> c15(MARK(from(x1))) MARK(add(x0, add(x1, x2))) -> c15(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(x0, add(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(add(x0, add(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(add(x0, add(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(add(x0, add(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(add(x0, add(x1, 0))) -> c15(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(add(x0, add(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(add(x0, add(x1, nil))) -> c15(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(add(x0, add(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(add(x0, add(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(add(x0, add(from(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(add(x0, add(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(add(x0, add(len(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(add(x0, add(0, x2))) -> c15(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(add(x0, add(s(z0), x2))) -> c15(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(add(x0, add(nil, x2))) -> c15(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(add(x0, add(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(add(fst(z0, z1), add(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(from(z0), add(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(add(z0, z1), add(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(len(z0), add(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(0, add(x1, x2))) -> c15(A__ADD(0, a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(s(z0), add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(nil, add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(cons(z0, z1), add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(x0, len(x1))) -> c15(A__ADD(mark(x0), len(mark(x1))), MARK(len(x1))) MARK(add(x0, len(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(add(x0, len(from(z0)))) -> c15(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(add(x0, len(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(add(x0, len(len(z0)))) -> c15(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(add(x0, len(0))) -> c15(A__ADD(mark(x0), a__len(0)), MARK(len(0))) MARK(add(x0, len(s(z0)))) -> c15(A__ADD(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(add(x0, len(nil))) -> c15(A__ADD(mark(x0), a__len(nil)), MARK(len(nil))) MARK(add(x0, len(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(add(fst(z0, z1), len(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(add(from(z0), len(x1))) -> c15(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(add(add(z0, z1), len(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(add(len(z0), len(x1))) -> c15(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(add(0, len(x1))) -> c15(A__ADD(0, a__len(mark(x1))), MARK(len(x1))) MARK(add(x0, len(x1))) -> c15(MARK(len(x1))) MARK(add(s(z0), len(x1))) -> c15(MARK(len(x1))) MARK(add(nil, len(x1))) -> c15(MARK(len(x1))) MARK(add(cons(z0, z1), len(x1))) -> c15(MARK(len(x1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(add(x0, cons(from(z0), x2))) -> c15(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(add(x0, cons(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(add(x0, cons(len(z0), x2))) -> c15(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(add(x0, cons(0, x2))) -> c15(A__ADD(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(add(x0, cons(s(z0), x2))) -> c15(A__ADD(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(add(x0, cons(nil, x2))) -> c15(A__ADD(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(add(x0, cons(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(add(fst(z0, z1), cons(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(from(z0), cons(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(add(z0, z1), cons(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(len(z0), cons(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(0, cons(x1, x2))) -> c15(A__ADD(0, cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(s(z0), cons(x1, x2))) -> c15(A__ADD(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(nil, cons(x1, x2))) -> c15(A__ADD(nil, cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c15(A__ADD(cons(mark(z0), z1), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(x0, cons(x1, x2))) -> c15(MARK(cons(x1, x2))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(add(add(x0, x1), x2)) -> c14(MARK(add(x0, x1))) MARK(add(len(fst(z0, z1)), x1)) -> c14(A__ADD(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(add(len(from(z0)), x1)) -> c14(A__ADD(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(add(len(add(z0, z1)), x1)) -> c14(A__ADD(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(add(len(len(z0)), x1)) -> c14(A__ADD(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(add(len(0), x1)) -> c14(A__ADD(a__len(0), mark(x1)), MARK(len(0))) MARK(add(len(s(z0)), x1)) -> c14(A__ADD(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(add(len(nil), x1)) -> c14(A__ADD(a__len(nil), mark(x1)), MARK(len(nil))) MARK(add(len(cons(z0, z1)), x1)) -> c14(A__ADD(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(add(len(x0), x1)) -> c14(MARK(len(x0))) MARK(add(x0, fst(x1, x2))) -> c15(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(add(x0, fst(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(add(x0, fst(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(add(x0, fst(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(add(x0, fst(x1, 0))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(add(x0, fst(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(add(x0, fst(x1, nil))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(add(x0, fst(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(add(x0, fst(from(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(add(x0, fst(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(add(x0, fst(len(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(add(x0, fst(0, x2))) -> c15(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(add(x0, fst(s(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(add(x0, fst(nil, x2))) -> c15(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(add(x0, fst(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(add(fst(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(from(z0), fst(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(add(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(len(z0), fst(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(0, fst(x1, x2))) -> c15(A__ADD(0, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(s(z0), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(nil, fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(add(x0, from(from(z0)))) -> c15(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(add(x0, from(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(add(x0, from(len(z0)))) -> c15(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(add(x0, from(0))) -> c15(A__ADD(mark(x0), a__from(0)), MARK(from(0))) MARK(add(x0, from(s(z0)))) -> c15(A__ADD(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(add(x0, from(nil))) -> c15(A__ADD(mark(x0), a__from(nil)), MARK(from(nil))) MARK(add(x0, from(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(add(fst(z0, z1), from(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(from(z0), from(x1))) -> c15(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(add(z0, z1), from(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(len(z0), from(x1))) -> c15(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(0, from(x1))) -> c15(A__ADD(0, a__from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(MARK(from(x1))) MARK(add(s(z0), from(x1))) -> c15(MARK(from(x1))) MARK(add(nil, from(x1))) -> c15(MARK(from(x1))) MARK(add(cons(z0, z1), from(x1))) -> c15(MARK(from(x1))) MARK(add(x0, add(x1, x2))) -> c15(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(x0, add(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(add(x0, add(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(add(x0, add(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(add(x0, add(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(add(x0, add(x1, 0))) -> c15(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(add(x0, add(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(add(x0, add(x1, nil))) -> c15(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(add(x0, add(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(add(x0, add(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(add(x0, add(from(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(add(x0, add(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(add(x0, add(len(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(add(x0, add(0, x2))) -> c15(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(add(x0, add(s(z0), x2))) -> c15(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(add(x0, add(nil, x2))) -> c15(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(add(x0, add(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(add(fst(z0, z1), add(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(from(z0), add(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(add(z0, z1), add(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(len(z0), add(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(0, add(x1, x2))) -> c15(A__ADD(0, a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(s(z0), add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(nil, add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(cons(z0, z1), add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(x0, len(x1))) -> c15(A__ADD(mark(x0), len(mark(x1))), MARK(len(x1))) MARK(add(x0, len(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(add(x0, len(from(z0)))) -> c15(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(add(x0, len(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(add(x0, len(len(z0)))) -> c15(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(add(x0, len(0))) -> c15(A__ADD(mark(x0), a__len(0)), MARK(len(0))) MARK(add(x0, len(s(z0)))) -> c15(A__ADD(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(add(x0, len(nil))) -> c15(A__ADD(mark(x0), a__len(nil)), MARK(len(nil))) MARK(add(x0, len(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(add(fst(z0, z1), len(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(add(from(z0), len(x1))) -> c15(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(add(add(z0, z1), len(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(add(len(z0), len(x1))) -> c15(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(add(0, len(x1))) -> c15(A__ADD(0, a__len(mark(x1))), MARK(len(x1))) MARK(add(x0, len(x1))) -> c15(MARK(len(x1))) MARK(add(s(z0), len(x1))) -> c15(MARK(len(x1))) MARK(add(nil, len(x1))) -> c15(MARK(len(x1))) MARK(add(cons(z0, z1), len(x1))) -> c15(MARK(len(x1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(add(x0, cons(from(z0), x2))) -> c15(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(add(x0, cons(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(add(x0, cons(len(z0), x2))) -> c15(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(add(x0, cons(0, x2))) -> c15(A__ADD(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(add(x0, cons(s(z0), x2))) -> c15(A__ADD(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(add(x0, cons(nil, x2))) -> c15(A__ADD(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(add(x0, cons(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(add(fst(z0, z1), cons(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(from(z0), cons(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(add(z0, z1), cons(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(len(z0), cons(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(0, cons(x1, x2))) -> c15(A__ADD(0, cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(s(z0), cons(x1, x2))) -> c15(A__ADD(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(nil, cons(x1, x2))) -> c15(A__ADD(nil, cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c15(A__ADD(cons(mark(z0), z1), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(x0, cons(x1, x2))) -> c15(MARK(cons(x1, x2))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_1, c15_2, c15_1, c11_2, c12_2, c14_2 ---------------------------------------- (265) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (266) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(add(add(x0, x1), x2)) -> c14(MARK(add(x0, x1))) MARK(add(len(fst(z0, z1)), x1)) -> c14(A__ADD(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(add(len(from(z0)), x1)) -> c14(A__ADD(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(add(len(add(z0, z1)), x1)) -> c14(A__ADD(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(add(len(len(z0)), x1)) -> c14(A__ADD(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(add(len(0), x1)) -> c14(A__ADD(a__len(0), mark(x1)), MARK(len(0))) MARK(add(len(s(z0)), x1)) -> c14(A__ADD(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(add(len(nil), x1)) -> c14(A__ADD(a__len(nil), mark(x1)), MARK(len(nil))) MARK(add(len(cons(z0, z1)), x1)) -> c14(A__ADD(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(add(len(x0), x1)) -> c14(MARK(len(x0))) MARK(add(x0, fst(x1, x2))) -> c15(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(add(x0, fst(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(add(x0, fst(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(add(x0, fst(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(add(x0, fst(x1, 0))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(add(x0, fst(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(add(x0, fst(x1, nil))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(add(x0, fst(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(add(x0, fst(from(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(add(x0, fst(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(add(x0, fst(len(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(add(x0, fst(0, x2))) -> c15(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(add(x0, fst(s(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(add(x0, fst(nil, x2))) -> c15(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(add(x0, fst(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(add(fst(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(from(z0), fst(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(add(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(len(z0), fst(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(0, fst(x1, x2))) -> c15(A__ADD(0, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(s(z0), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(nil, fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(add(x0, from(from(z0)))) -> c15(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(add(x0, from(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(add(x0, from(len(z0)))) -> c15(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(add(x0, from(0))) -> c15(A__ADD(mark(x0), a__from(0)), MARK(from(0))) MARK(add(x0, from(s(z0)))) -> c15(A__ADD(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(add(x0, from(nil))) -> c15(A__ADD(mark(x0), a__from(nil)), MARK(from(nil))) MARK(add(x0, from(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(add(fst(z0, z1), from(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(from(z0), from(x1))) -> c15(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(add(z0, z1), from(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(len(z0), from(x1))) -> c15(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(0, from(x1))) -> c15(A__ADD(0, a__from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(MARK(from(x1))) MARK(add(s(z0), from(x1))) -> c15(MARK(from(x1))) MARK(add(nil, from(x1))) -> c15(MARK(from(x1))) MARK(add(cons(z0, z1), from(x1))) -> c15(MARK(from(x1))) MARK(add(x0, add(x1, x2))) -> c15(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(x0, add(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(add(x0, add(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(add(x0, add(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(add(x0, add(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(add(x0, add(x1, 0))) -> c15(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(add(x0, add(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(add(x0, add(x1, nil))) -> c15(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(add(x0, add(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(add(x0, add(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(add(x0, add(from(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(add(x0, add(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(add(x0, add(len(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(add(x0, add(0, x2))) -> c15(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(add(x0, add(s(z0), x2))) -> c15(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(add(x0, add(nil, x2))) -> c15(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(add(x0, add(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(add(fst(z0, z1), add(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(from(z0), add(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(add(z0, z1), add(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(len(z0), add(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(0, add(x1, x2))) -> c15(A__ADD(0, a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(s(z0), add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(nil, add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(cons(z0, z1), add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(x0, len(x1))) -> c15(A__ADD(mark(x0), len(mark(x1))), MARK(len(x1))) MARK(add(x0, len(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(add(x0, len(from(z0)))) -> c15(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(add(x0, len(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(add(x0, len(len(z0)))) -> c15(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(add(x0, len(0))) -> c15(A__ADD(mark(x0), a__len(0)), MARK(len(0))) MARK(add(x0, len(s(z0)))) -> c15(A__ADD(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(add(x0, len(nil))) -> c15(A__ADD(mark(x0), a__len(nil)), MARK(len(nil))) MARK(add(x0, len(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(add(fst(z0, z1), len(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(add(from(z0), len(x1))) -> c15(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(add(add(z0, z1), len(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(add(len(z0), len(x1))) -> c15(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(add(0, len(x1))) -> c15(A__ADD(0, a__len(mark(x1))), MARK(len(x1))) MARK(add(x0, len(x1))) -> c15(MARK(len(x1))) MARK(add(s(z0), len(x1))) -> c15(MARK(len(x1))) MARK(add(nil, len(x1))) -> c15(MARK(len(x1))) MARK(add(cons(z0, z1), len(x1))) -> c15(MARK(len(x1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(add(x0, cons(from(z0), x2))) -> c15(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(add(x0, cons(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(add(x0, cons(len(z0), x2))) -> c15(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(add(x0, cons(0, x2))) -> c15(A__ADD(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(add(x0, cons(s(z0), x2))) -> c15(A__ADD(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(add(x0, cons(nil, x2))) -> c15(A__ADD(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(add(x0, cons(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(add(fst(z0, z1), cons(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(from(z0), cons(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(add(z0, z1), cons(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(len(z0), cons(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(0, cons(x1, x2))) -> c15(A__ADD(0, cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(x0, cons(x1, x2))) -> c15(MARK(cons(x1, x2))) MARK(add(s(z0), cons(x1, x2))) -> c15(MARK(cons(x1, x2))) MARK(add(nil, cons(x1, x2))) -> c15(MARK(cons(x1, x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c15(MARK(cons(x1, x2))) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(add(add(x0, x1), x2)) -> c14(MARK(add(x0, x1))) MARK(add(len(fst(z0, z1)), x1)) -> c14(A__ADD(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(add(len(from(z0)), x1)) -> c14(A__ADD(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(add(len(add(z0, z1)), x1)) -> c14(A__ADD(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(add(len(len(z0)), x1)) -> c14(A__ADD(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(add(len(0), x1)) -> c14(A__ADD(a__len(0), mark(x1)), MARK(len(0))) MARK(add(len(s(z0)), x1)) -> c14(A__ADD(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(add(len(nil), x1)) -> c14(A__ADD(a__len(nil), mark(x1)), MARK(len(nil))) MARK(add(len(cons(z0, z1)), x1)) -> c14(A__ADD(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(add(len(x0), x1)) -> c14(MARK(len(x0))) MARK(add(x0, fst(x1, x2))) -> c15(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(add(x0, fst(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(add(x0, fst(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(add(x0, fst(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(add(x0, fst(x1, 0))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(add(x0, fst(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(add(x0, fst(x1, nil))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(add(x0, fst(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(add(x0, fst(from(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(add(x0, fst(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(add(x0, fst(len(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(add(x0, fst(0, x2))) -> c15(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(add(x0, fst(s(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(add(x0, fst(nil, x2))) -> c15(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(add(x0, fst(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(add(fst(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(from(z0), fst(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(add(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(len(z0), fst(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(0, fst(x1, x2))) -> c15(A__ADD(0, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(s(z0), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(nil, fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(add(x0, from(from(z0)))) -> c15(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(add(x0, from(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(add(x0, from(len(z0)))) -> c15(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(add(x0, from(0))) -> c15(A__ADD(mark(x0), a__from(0)), MARK(from(0))) MARK(add(x0, from(s(z0)))) -> c15(A__ADD(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(add(x0, from(nil))) -> c15(A__ADD(mark(x0), a__from(nil)), MARK(from(nil))) MARK(add(x0, from(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(add(fst(z0, z1), from(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(from(z0), from(x1))) -> c15(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(add(z0, z1), from(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(len(z0), from(x1))) -> c15(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(0, from(x1))) -> c15(A__ADD(0, a__from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(MARK(from(x1))) MARK(add(s(z0), from(x1))) -> c15(MARK(from(x1))) MARK(add(nil, from(x1))) -> c15(MARK(from(x1))) MARK(add(cons(z0, z1), from(x1))) -> c15(MARK(from(x1))) MARK(add(x0, add(x1, x2))) -> c15(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(x0, add(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(add(x0, add(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(add(x0, add(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(add(x0, add(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(add(x0, add(x1, 0))) -> c15(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(add(x0, add(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(add(x0, add(x1, nil))) -> c15(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(add(x0, add(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(add(x0, add(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(add(x0, add(from(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(add(x0, add(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(add(x0, add(len(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(add(x0, add(0, x2))) -> c15(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(add(x0, add(s(z0), x2))) -> c15(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(add(x0, add(nil, x2))) -> c15(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(add(x0, add(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(add(fst(z0, z1), add(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(from(z0), add(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(add(z0, z1), add(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(len(z0), add(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(0, add(x1, x2))) -> c15(A__ADD(0, a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(s(z0), add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(nil, add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(cons(z0, z1), add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(x0, len(x1))) -> c15(A__ADD(mark(x0), len(mark(x1))), MARK(len(x1))) MARK(add(x0, len(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(add(x0, len(from(z0)))) -> c15(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(add(x0, len(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(add(x0, len(len(z0)))) -> c15(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(add(x0, len(0))) -> c15(A__ADD(mark(x0), a__len(0)), MARK(len(0))) MARK(add(x0, len(s(z0)))) -> c15(A__ADD(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(add(x0, len(nil))) -> c15(A__ADD(mark(x0), a__len(nil)), MARK(len(nil))) MARK(add(x0, len(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(add(fst(z0, z1), len(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(add(from(z0), len(x1))) -> c15(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(add(add(z0, z1), len(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(add(len(z0), len(x1))) -> c15(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(add(0, len(x1))) -> c15(A__ADD(0, a__len(mark(x1))), MARK(len(x1))) MARK(add(x0, len(x1))) -> c15(MARK(len(x1))) MARK(add(s(z0), len(x1))) -> c15(MARK(len(x1))) MARK(add(nil, len(x1))) -> c15(MARK(len(x1))) MARK(add(cons(z0, z1), len(x1))) -> c15(MARK(len(x1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(add(x0, cons(from(z0), x2))) -> c15(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(add(x0, cons(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(add(x0, cons(len(z0), x2))) -> c15(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(add(x0, cons(0, x2))) -> c15(A__ADD(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(add(x0, cons(s(z0), x2))) -> c15(A__ADD(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(add(x0, cons(nil, x2))) -> c15(A__ADD(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(add(x0, cons(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(add(fst(z0, z1), cons(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(from(z0), cons(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(add(z0, z1), cons(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(len(z0), cons(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(0, cons(x1, x2))) -> c15(A__ADD(0, cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(x0, cons(x1, x2))) -> c15(MARK(cons(x1, x2))) MARK(add(s(z0), cons(x1, x2))) -> c15(MARK(cons(x1, x2))) MARK(add(nil, cons(x1, x2))) -> c15(MARK(cons(x1, x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c15(MARK(cons(x1, x2))) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_1, c15_2, c15_1, c11_2, c12_2, c14_2 ---------------------------------------- (267) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(add(fst(z0, z1), x1)) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), mark(x1)), MARK(x1)) by MARK(add(fst(x0, x1), fst(z0, z1))) -> c15(A__ADD(a__fst(mark(x0), mark(x1)), a__fst(mark(z0), mark(z1))), MARK(fst(z0, z1))) MARK(add(fst(x0, x1), from(z0))) -> c15(A__ADD(a__fst(mark(x0), mark(x1)), a__from(mark(z0))), MARK(from(z0))) MARK(add(fst(x0, x1), add(z0, z1))) -> c15(A__ADD(a__fst(mark(x0), mark(x1)), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(fst(x0, x1), len(z0))) -> c15(A__ADD(a__fst(mark(x0), mark(x1)), a__len(mark(z0))), MARK(len(z0))) MARK(add(fst(x0, x1), 0)) -> c15(A__ADD(a__fst(mark(x0), mark(x1)), 0), MARK(0)) MARK(add(fst(x0, x1), s(z0))) -> c15(A__ADD(a__fst(mark(x0), mark(x1)), s(z0)), MARK(s(z0))) MARK(add(fst(x0, x1), nil)) -> c15(A__ADD(a__fst(mark(x0), mark(x1)), nil), MARK(nil)) MARK(add(fst(x0, x1), cons(z0, z1))) -> c15(A__ADD(a__fst(mark(x0), mark(x1)), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(fst(x0, x1), x2)) -> c15(A__ADD(fst(mark(x0), mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c15(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(add(fst(x0, from(z0)), x2)) -> c15(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(add(fst(x0, add(z0, z1)), x2)) -> c15(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(add(fst(x0, len(z0)), x2)) -> c15(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(add(fst(x0, 0), x2)) -> c15(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(add(fst(x0, s(z0)), x2)) -> c15(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(add(fst(x0, nil), x2)) -> c15(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c15(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(add(fst(fst(z0, z1), x1), x2)) -> c15(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(from(z0), x1), x2)) -> c15(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(add(z0, z1), x1), x2)) -> c15(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(len(z0), x1), x2)) -> c15(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(0, x1), x2)) -> c15(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(s(z0), x1), x2)) -> c15(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(nil, x1), x2)) -> c15(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(cons(z0, z1), x1), x2)) -> c15(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) ---------------------------------------- (268) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(add(add(x0, x1), x2)) -> c14(MARK(add(x0, x1))) MARK(add(len(fst(z0, z1)), x1)) -> c14(A__ADD(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(add(len(from(z0)), x1)) -> c14(A__ADD(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(add(len(add(z0, z1)), x1)) -> c14(A__ADD(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(add(len(len(z0)), x1)) -> c14(A__ADD(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(add(len(0), x1)) -> c14(A__ADD(a__len(0), mark(x1)), MARK(len(0))) MARK(add(len(s(z0)), x1)) -> c14(A__ADD(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(add(len(nil), x1)) -> c14(A__ADD(a__len(nil), mark(x1)), MARK(len(nil))) MARK(add(len(cons(z0, z1)), x1)) -> c14(A__ADD(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(add(len(x0), x1)) -> c14(MARK(len(x0))) MARK(add(x0, fst(x1, x2))) -> c15(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(add(x0, fst(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(add(x0, fst(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(add(x0, fst(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(add(x0, fst(x1, 0))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(add(x0, fst(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(add(x0, fst(x1, nil))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(add(x0, fst(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(add(x0, fst(from(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(add(x0, fst(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(add(x0, fst(len(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(add(x0, fst(0, x2))) -> c15(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(add(x0, fst(s(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(add(x0, fst(nil, x2))) -> c15(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(add(x0, fst(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(add(fst(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(from(z0), fst(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(add(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(len(z0), fst(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(0, fst(x1, x2))) -> c15(A__ADD(0, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(s(z0), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(nil, fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(add(x0, from(from(z0)))) -> c15(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(add(x0, from(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(add(x0, from(len(z0)))) -> c15(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(add(x0, from(0))) -> c15(A__ADD(mark(x0), a__from(0)), MARK(from(0))) MARK(add(x0, from(s(z0)))) -> c15(A__ADD(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(add(x0, from(nil))) -> c15(A__ADD(mark(x0), a__from(nil)), MARK(from(nil))) MARK(add(x0, from(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(add(fst(z0, z1), from(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(from(z0), from(x1))) -> c15(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(add(z0, z1), from(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(len(z0), from(x1))) -> c15(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(0, from(x1))) -> c15(A__ADD(0, a__from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(MARK(from(x1))) MARK(add(s(z0), from(x1))) -> c15(MARK(from(x1))) MARK(add(nil, from(x1))) -> c15(MARK(from(x1))) MARK(add(cons(z0, z1), from(x1))) -> c15(MARK(from(x1))) MARK(add(x0, add(x1, x2))) -> c15(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(x0, add(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(add(x0, add(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(add(x0, add(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(add(x0, add(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(add(x0, add(x1, 0))) -> c15(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(add(x0, add(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(add(x0, add(x1, nil))) -> c15(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(add(x0, add(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(add(x0, add(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(add(x0, add(from(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(add(x0, add(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(add(x0, add(len(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(add(x0, add(0, x2))) -> c15(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(add(x0, add(s(z0), x2))) -> c15(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(add(x0, add(nil, x2))) -> c15(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(add(x0, add(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(add(fst(z0, z1), add(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(from(z0), add(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(add(z0, z1), add(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(len(z0), add(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(0, add(x1, x2))) -> c15(A__ADD(0, a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(s(z0), add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(nil, add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(cons(z0, z1), add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(x0, len(x1))) -> c15(A__ADD(mark(x0), len(mark(x1))), MARK(len(x1))) MARK(add(x0, len(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(add(x0, len(from(z0)))) -> c15(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(add(x0, len(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(add(x0, len(len(z0)))) -> c15(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(add(x0, len(0))) -> c15(A__ADD(mark(x0), a__len(0)), MARK(len(0))) MARK(add(x0, len(s(z0)))) -> c15(A__ADD(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(add(x0, len(nil))) -> c15(A__ADD(mark(x0), a__len(nil)), MARK(len(nil))) MARK(add(x0, len(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(add(fst(z0, z1), len(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(add(from(z0), len(x1))) -> c15(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(add(add(z0, z1), len(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(add(len(z0), len(x1))) -> c15(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(add(0, len(x1))) -> c15(A__ADD(0, a__len(mark(x1))), MARK(len(x1))) MARK(add(x0, len(x1))) -> c15(MARK(len(x1))) MARK(add(s(z0), len(x1))) -> c15(MARK(len(x1))) MARK(add(nil, len(x1))) -> c15(MARK(len(x1))) MARK(add(cons(z0, z1), len(x1))) -> c15(MARK(len(x1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(add(x0, cons(from(z0), x2))) -> c15(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(add(x0, cons(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(add(x0, cons(len(z0), x2))) -> c15(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(add(x0, cons(0, x2))) -> c15(A__ADD(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(add(x0, cons(s(z0), x2))) -> c15(A__ADD(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(add(x0, cons(nil, x2))) -> c15(A__ADD(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(add(x0, cons(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(add(fst(z0, z1), cons(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(from(z0), cons(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(add(z0, z1), cons(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(len(z0), cons(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(0, cons(x1, x2))) -> c15(A__ADD(0, cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(x0, cons(x1, x2))) -> c15(MARK(cons(x1, x2))) MARK(add(s(z0), cons(x1, x2))) -> c15(MARK(cons(x1, x2))) MARK(add(nil, cons(x1, x2))) -> c15(MARK(cons(x1, x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c15(MARK(cons(x1, x2))) MARK(add(fst(x0, x1), 0)) -> c15(A__ADD(a__fst(mark(x0), mark(x1)), 0), MARK(0)) MARK(add(fst(x0, x1), s(z0))) -> c15(A__ADD(a__fst(mark(x0), mark(x1)), s(z0)), MARK(s(z0))) MARK(add(fst(x0, x1), nil)) -> c15(A__ADD(a__fst(mark(x0), mark(x1)), nil), MARK(nil)) MARK(add(fst(x0, x1), x2)) -> c15(A__ADD(fst(mark(x0), mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c15(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(add(fst(x0, from(z0)), x2)) -> c15(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(add(fst(x0, add(z0, z1)), x2)) -> c15(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(add(fst(x0, len(z0)), x2)) -> c15(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(add(fst(x0, 0), x2)) -> c15(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(add(fst(x0, s(z0)), x2)) -> c15(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(add(fst(x0, nil), x2)) -> c15(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c15(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(add(fst(fst(z0, z1), x1), x2)) -> c15(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(from(z0), x1), x2)) -> c15(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(add(z0, z1), x1), x2)) -> c15(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(len(z0), x1), x2)) -> c15(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(0, x1), x2)) -> c15(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(s(z0), x1), x2)) -> c15(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(nil, x1), x2)) -> c15(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(cons(z0, z1), x1), x2)) -> c15(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(add(add(x0, x1), x2)) -> c14(MARK(add(x0, x1))) MARK(add(len(fst(z0, z1)), x1)) -> c14(A__ADD(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(add(len(from(z0)), x1)) -> c14(A__ADD(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(add(len(add(z0, z1)), x1)) -> c14(A__ADD(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(add(len(len(z0)), x1)) -> c14(A__ADD(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(add(len(0), x1)) -> c14(A__ADD(a__len(0), mark(x1)), MARK(len(0))) MARK(add(len(s(z0)), x1)) -> c14(A__ADD(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(add(len(nil), x1)) -> c14(A__ADD(a__len(nil), mark(x1)), MARK(len(nil))) MARK(add(len(cons(z0, z1)), x1)) -> c14(A__ADD(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(add(len(x0), x1)) -> c14(MARK(len(x0))) MARK(add(x0, fst(x1, x2))) -> c15(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(add(x0, fst(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(add(x0, fst(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(add(x0, fst(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(add(x0, fst(x1, 0))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(add(x0, fst(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(add(x0, fst(x1, nil))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(add(x0, fst(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(add(x0, fst(from(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(add(x0, fst(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(add(x0, fst(len(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(add(x0, fst(0, x2))) -> c15(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(add(x0, fst(s(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(add(x0, fst(nil, x2))) -> c15(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(add(x0, fst(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(add(fst(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(from(z0), fst(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(add(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(len(z0), fst(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(0, fst(x1, x2))) -> c15(A__ADD(0, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(s(z0), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(nil, fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(add(x0, from(from(z0)))) -> c15(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(add(x0, from(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(add(x0, from(len(z0)))) -> c15(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(add(x0, from(0))) -> c15(A__ADD(mark(x0), a__from(0)), MARK(from(0))) MARK(add(x0, from(s(z0)))) -> c15(A__ADD(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(add(x0, from(nil))) -> c15(A__ADD(mark(x0), a__from(nil)), MARK(from(nil))) MARK(add(x0, from(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(add(fst(z0, z1), from(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(from(z0), from(x1))) -> c15(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(add(z0, z1), from(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(len(z0), from(x1))) -> c15(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(0, from(x1))) -> c15(A__ADD(0, a__from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(MARK(from(x1))) MARK(add(s(z0), from(x1))) -> c15(MARK(from(x1))) MARK(add(nil, from(x1))) -> c15(MARK(from(x1))) MARK(add(cons(z0, z1), from(x1))) -> c15(MARK(from(x1))) MARK(add(x0, add(x1, x2))) -> c15(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(x0, add(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(add(x0, add(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(add(x0, add(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(add(x0, add(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(add(x0, add(x1, 0))) -> c15(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(add(x0, add(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(add(x0, add(x1, nil))) -> c15(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(add(x0, add(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(add(x0, add(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(add(x0, add(from(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(add(x0, add(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(add(x0, add(len(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(add(x0, add(0, x2))) -> c15(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(add(x0, add(s(z0), x2))) -> c15(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(add(x0, add(nil, x2))) -> c15(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(add(x0, add(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(add(fst(z0, z1), add(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(from(z0), add(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(add(z0, z1), add(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(len(z0), add(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(0, add(x1, x2))) -> c15(A__ADD(0, a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(s(z0), add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(nil, add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(cons(z0, z1), add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(x0, len(x1))) -> c15(A__ADD(mark(x0), len(mark(x1))), MARK(len(x1))) MARK(add(x0, len(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(add(x0, len(from(z0)))) -> c15(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(add(x0, len(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(add(x0, len(len(z0)))) -> c15(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(add(x0, len(0))) -> c15(A__ADD(mark(x0), a__len(0)), MARK(len(0))) MARK(add(x0, len(s(z0)))) -> c15(A__ADD(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(add(x0, len(nil))) -> c15(A__ADD(mark(x0), a__len(nil)), MARK(len(nil))) MARK(add(x0, len(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(add(fst(z0, z1), len(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(add(from(z0), len(x1))) -> c15(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(add(add(z0, z1), len(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(add(len(z0), len(x1))) -> c15(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(add(0, len(x1))) -> c15(A__ADD(0, a__len(mark(x1))), MARK(len(x1))) MARK(add(x0, len(x1))) -> c15(MARK(len(x1))) MARK(add(s(z0), len(x1))) -> c15(MARK(len(x1))) MARK(add(nil, len(x1))) -> c15(MARK(len(x1))) MARK(add(cons(z0, z1), len(x1))) -> c15(MARK(len(x1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(add(x0, cons(from(z0), x2))) -> c15(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(add(x0, cons(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(add(x0, cons(len(z0), x2))) -> c15(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(add(x0, cons(0, x2))) -> c15(A__ADD(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(add(x0, cons(s(z0), x2))) -> c15(A__ADD(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(add(x0, cons(nil, x2))) -> c15(A__ADD(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(add(x0, cons(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(add(fst(z0, z1), cons(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(from(z0), cons(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(add(z0, z1), cons(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(len(z0), cons(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(0, cons(x1, x2))) -> c15(A__ADD(0, cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(x0, cons(x1, x2))) -> c15(MARK(cons(x1, x2))) MARK(add(s(z0), cons(x1, x2))) -> c15(MARK(cons(x1, x2))) MARK(add(nil, cons(x1, x2))) -> c15(MARK(cons(x1, x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c15(MARK(cons(x1, x2))) MARK(add(fst(x0, x1), 0)) -> c15(A__ADD(a__fst(mark(x0), mark(x1)), 0), MARK(0)) MARK(add(fst(x0, x1), s(z0))) -> c15(A__ADD(a__fst(mark(x0), mark(x1)), s(z0)), MARK(s(z0))) MARK(add(fst(x0, x1), nil)) -> c15(A__ADD(a__fst(mark(x0), mark(x1)), nil), MARK(nil)) MARK(add(fst(x0, x1), x2)) -> c15(A__ADD(fst(mark(x0), mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c15(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(add(fst(x0, from(z0)), x2)) -> c15(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(add(fst(x0, add(z0, z1)), x2)) -> c15(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(add(fst(x0, len(z0)), x2)) -> c15(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(add(fst(x0, 0), x2)) -> c15(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(add(fst(x0, s(z0)), x2)) -> c15(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(add(fst(x0, nil), x2)) -> c15(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c15(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(add(fst(fst(z0, z1), x1), x2)) -> c15(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(from(z0), x1), x2)) -> c15(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(add(z0, z1), x1), x2)) -> c15(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(len(z0), x1), x2)) -> c15(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(0, x1), x2)) -> c15(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(s(z0), x1), x2)) -> c15(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(nil, x1), x2)) -> c15(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(cons(z0, z1), x1), x2)) -> c15(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_1, c15_2, c15_1, c11_2, c12_2, c14_2 ---------------------------------------- (269) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (270) Obligation: Complexity Dependency Tuples Problem Rules: a__fst(0, z0) -> nil a__fst(s(z0), cons(z1, z2)) -> cons(mark(z1), fst(z0, z2)) a__fst(z0, z1) -> fst(z0, z1) a__from(z0) -> cons(mark(z0), from(s(z0))) a__from(z0) -> from(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(add(z0, z1)) a__add(z0, z1) -> add(z0, z1) a__len(nil) -> 0 a__len(cons(z0, z1)) -> s(len(z1)) a__len(z0) -> len(z0) mark(fst(z0, z1)) -> a__fst(mark(z0), mark(z1)) mark(from(z0)) -> a__from(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(len(z0)) -> a__len(mark(z0)) mark(0) -> 0 mark(s(z0)) -> s(z0) mark(nil) -> nil mark(cons(z0, z1)) -> cons(mark(z0), z1) Tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(add(add(x0, x1), x2)) -> c14(MARK(add(x0, x1))) MARK(add(len(fst(z0, z1)), x1)) -> c14(A__ADD(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(add(len(from(z0)), x1)) -> c14(A__ADD(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(add(len(add(z0, z1)), x1)) -> c14(A__ADD(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(add(len(len(z0)), x1)) -> c14(A__ADD(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(add(len(0), x1)) -> c14(A__ADD(a__len(0), mark(x1)), MARK(len(0))) MARK(add(len(s(z0)), x1)) -> c14(A__ADD(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(add(len(nil), x1)) -> c14(A__ADD(a__len(nil), mark(x1)), MARK(len(nil))) MARK(add(len(cons(z0, z1)), x1)) -> c14(A__ADD(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(add(len(x0), x1)) -> c14(MARK(len(x0))) MARK(add(x0, fst(x1, x2))) -> c15(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(add(x0, fst(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(add(x0, fst(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(add(x0, fst(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(add(x0, fst(x1, 0))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(add(x0, fst(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(add(x0, fst(x1, nil))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(add(x0, fst(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(add(x0, fst(from(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(add(x0, fst(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(add(x0, fst(len(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(add(x0, fst(0, x2))) -> c15(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(add(x0, fst(s(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(add(x0, fst(nil, x2))) -> c15(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(add(x0, fst(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(add(fst(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(from(z0), fst(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(add(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(len(z0), fst(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(0, fst(x1, x2))) -> c15(A__ADD(0, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(s(z0), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(nil, fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(add(x0, from(from(z0)))) -> c15(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(add(x0, from(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(add(x0, from(len(z0)))) -> c15(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(add(x0, from(0))) -> c15(A__ADD(mark(x0), a__from(0)), MARK(from(0))) MARK(add(x0, from(s(z0)))) -> c15(A__ADD(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(add(x0, from(nil))) -> c15(A__ADD(mark(x0), a__from(nil)), MARK(from(nil))) MARK(add(x0, from(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(add(fst(z0, z1), from(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(from(z0), from(x1))) -> c15(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(add(z0, z1), from(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(len(z0), from(x1))) -> c15(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(0, from(x1))) -> c15(A__ADD(0, a__from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(MARK(from(x1))) MARK(add(s(z0), from(x1))) -> c15(MARK(from(x1))) MARK(add(nil, from(x1))) -> c15(MARK(from(x1))) MARK(add(cons(z0, z1), from(x1))) -> c15(MARK(from(x1))) MARK(add(x0, add(x1, x2))) -> c15(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(x0, add(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(add(x0, add(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(add(x0, add(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(add(x0, add(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(add(x0, add(x1, 0))) -> c15(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(add(x0, add(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(add(x0, add(x1, nil))) -> c15(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(add(x0, add(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(add(x0, add(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(add(x0, add(from(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(add(x0, add(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(add(x0, add(len(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(add(x0, add(0, x2))) -> c15(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(add(x0, add(s(z0), x2))) -> c15(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(add(x0, add(nil, x2))) -> c15(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(add(x0, add(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(add(fst(z0, z1), add(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(from(z0), add(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(add(z0, z1), add(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(len(z0), add(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(0, add(x1, x2))) -> c15(A__ADD(0, a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(s(z0), add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(nil, add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(cons(z0, z1), add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(x0, len(x1))) -> c15(A__ADD(mark(x0), len(mark(x1))), MARK(len(x1))) MARK(add(x0, len(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(add(x0, len(from(z0)))) -> c15(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(add(x0, len(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(add(x0, len(len(z0)))) -> c15(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(add(x0, len(0))) -> c15(A__ADD(mark(x0), a__len(0)), MARK(len(0))) MARK(add(x0, len(s(z0)))) -> c15(A__ADD(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(add(x0, len(nil))) -> c15(A__ADD(mark(x0), a__len(nil)), MARK(len(nil))) MARK(add(x0, len(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(add(fst(z0, z1), len(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(add(from(z0), len(x1))) -> c15(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(add(add(z0, z1), len(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(add(len(z0), len(x1))) -> c15(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(add(0, len(x1))) -> c15(A__ADD(0, a__len(mark(x1))), MARK(len(x1))) MARK(add(x0, len(x1))) -> c15(MARK(len(x1))) MARK(add(s(z0), len(x1))) -> c15(MARK(len(x1))) MARK(add(nil, len(x1))) -> c15(MARK(len(x1))) MARK(add(cons(z0, z1), len(x1))) -> c15(MARK(len(x1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(add(x0, cons(from(z0), x2))) -> c15(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(add(x0, cons(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(add(x0, cons(len(z0), x2))) -> c15(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(add(x0, cons(0, x2))) -> c15(A__ADD(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(add(x0, cons(s(z0), x2))) -> c15(A__ADD(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(add(x0, cons(nil, x2))) -> c15(A__ADD(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(add(x0, cons(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(add(fst(z0, z1), cons(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(from(z0), cons(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(add(z0, z1), cons(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(len(z0), cons(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(0, cons(x1, x2))) -> c15(A__ADD(0, cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(x0, cons(x1, x2))) -> c15(MARK(cons(x1, x2))) MARK(add(s(z0), cons(x1, x2))) -> c15(MARK(cons(x1, x2))) MARK(add(nil, cons(x1, x2))) -> c15(MARK(cons(x1, x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c15(MARK(cons(x1, x2))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c15(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(add(fst(x0, from(z0)), x2)) -> c15(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(add(fst(x0, add(z0, z1)), x2)) -> c15(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(add(fst(x0, len(z0)), x2)) -> c15(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(add(fst(x0, 0), x2)) -> c15(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(add(fst(x0, s(z0)), x2)) -> c15(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(add(fst(x0, nil), x2)) -> c15(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c15(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(add(fst(fst(z0, z1), x1), x2)) -> c15(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(from(z0), x1), x2)) -> c15(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(add(z0, z1), x1), x2)) -> c15(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(len(z0), x1), x2)) -> c15(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(0, x1), x2)) -> c15(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(s(z0), x1), x2)) -> c15(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(nil, x1), x2)) -> c15(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(cons(z0, z1), x1), x2)) -> c15(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(x0, x1), 0)) -> c15(A__ADD(a__fst(mark(x0), mark(x1)), 0)) MARK(add(fst(x0, x1), s(z0))) -> c15(A__ADD(a__fst(mark(x0), mark(x1)), s(z0))) MARK(add(fst(x0, x1), nil)) -> c15(A__ADD(a__fst(mark(x0), mark(x1)), nil)) MARK(add(fst(x0, x1), x2)) -> c15(MARK(x2)) S tuples: A__FST(s(z0), cons(z1, z2)) -> c1(MARK(z1)) A__FROM(z0) -> c3(MARK(z0)) A__ADD(0, z0) -> c5(MARK(z0)) MARK(from(z0)) -> c13(A__FROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c20(MARK(z0)) MARK(len(z0)) -> c16(MARK(z0)) MARK(fst(x0, 0)) -> c11(MARK(x0)) MARK(fst(x0, s(z0))) -> c11(MARK(x0)) MARK(fst(x0, nil)) -> c11(MARK(x0)) MARK(fst(cons(z0, z1), x1)) -> c11(MARK(cons(z0, z1))) MARK(fst(0, x1)) -> c12(MARK(x1)) MARK(fst(nil, x1)) -> c12(MARK(x1)) MARK(fst(cons(z0, z1), x1)) -> c12(MARK(x1)) MARK(add(0, x1)) -> c14(A__ADD(0, mark(x1))) MARK(add(cons(z0, z1), x1)) -> c14(MARK(cons(z0, z1))) MARK(add(from(z0), x1)) -> c15(A__ADD(a__from(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c15(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(len(z0), x1)) -> c15(A__ADD(a__len(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c15(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c15(A__ADD(mark(x0), 0)) MARK(add(x0, s(z0))) -> c15(A__ADD(mark(x0), s(z0))) MARK(add(x0, nil)) -> c15(A__ADD(mark(x0), nil)) MARK(add(s(z0), x1)) -> c15(MARK(x1)) MARK(add(nil, x1)) -> c15(MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c15(MARK(x1)) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, from(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, fst(x1, len(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, fst(x1, 0))) -> c11(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(fst(x0, fst(x1, s(z0)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, fst(x1, nil))) -> c11(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(from(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(len(z0), x2))) -> c11(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, fst(0, x2))) -> c11(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(fst(x0, fst(s(z0), x2))) -> c11(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, fst(nil, x2))) -> c11(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), fst(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), fst(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, fst(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), fst(x1, x2))) -> c11(A__FST(s(z0), a__fst(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, from(x1))) -> c11(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(fst(x0, from(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(from(z0)))) -> c11(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, from(add(z0, z1)))) -> c11(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, from(len(z0)))) -> c11(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, from(0))) -> c11(A__FST(mark(x0), a__from(0)), MARK(x0)) MARK(fst(x0, from(s(z0)))) -> c11(A__FST(mark(x0), a__from(s(z0))), MARK(x0)) MARK(fst(x0, from(nil))) -> c11(A__FST(mark(x0), a__from(nil)), MARK(x0)) MARK(fst(x0, from(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), from(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), from(x1))) -> c11(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), from(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), from(x1))) -> c11(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(fst(x0, from(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), from(x1))) -> c11(A__FST(s(z0), a__from(mark(x1)))) MARK(fst(cons(z0, z1), from(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, from(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, add(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, add(x1, len(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, add(x1, 0))) -> c11(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(fst(x0, add(x1, s(z0)))) -> c11(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(fst(x0, add(x1, nil))) -> c11(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c11(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(fst(x0, add(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(from(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(add(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(fst(x0, add(len(z0), x2))) -> c11(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(fst(x0, add(0, x2))) -> c11(A__FST(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(fst(x0, add(s(z0), x2))) -> c11(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(fst(x0, add(nil, x2))) -> c11(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(fst(x0, add(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(fst(fst(z0, z1), add(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(fst(from(z0), add(x1, x2))) -> c11(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(fst(add(z0, z1), add(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(fst(len(z0), add(x1, x2))) -> c11(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(fst(x0, add(x1, x2))) -> c11(MARK(x0)) MARK(fst(s(z0), add(x1, x2))) -> c11(A__FST(s(z0), a__add(mark(x1), mark(x2)))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, len(fst(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(from(z0)))) -> c11(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(fst(x0, len(add(z0, z1)))) -> c11(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(fst(x0, len(len(z0)))) -> c11(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(fst(x0, len(0))) -> c11(A__FST(mark(x0), a__len(0)), MARK(x0)) MARK(fst(x0, len(s(z0)))) -> c11(A__FST(mark(x0), a__len(s(z0))), MARK(x0)) MARK(fst(x0, len(nil))) -> c11(A__FST(mark(x0), a__len(nil)), MARK(x0)) MARK(fst(x0, len(cons(z0, z1)))) -> c11(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(fst(fst(z0, z1), len(x1))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(fst(from(z0), len(x1))) -> c11(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(fst(add(z0, z1), len(x1))) -> c11(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(fst(len(z0), len(x1))) -> c11(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(fst(x0, len(x1))) -> c11(MARK(x0)) MARK(fst(s(z0), len(x1))) -> c11(A__FST(s(z0), a__len(mark(x1)))) MARK(fst(cons(z0, z1), len(x1))) -> c11(MARK(cons(z0, z1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(from(z0), x2))) -> c11(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(add(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(fst(x0, cons(len(z0), x2))) -> c11(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(fst(x0, cons(0, x2))) -> c11(A__FST(mark(x0), cons(0, x2)), MARK(x0)) MARK(fst(x0, cons(s(z0), x2))) -> c11(A__FST(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(fst(x0, cons(nil, x2))) -> c11(A__FST(mark(x0), cons(nil, x2)), MARK(x0)) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c11(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c11(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(fst(from(z0), cons(x1, x2))) -> c11(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c11(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(fst(len(z0), cons(x1, x2))) -> c11(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(fst(s(z0), cons(x1, x2))) -> c11(A__FST(s(z0), cons(mark(x1), x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c11(MARK(cons(z0, z1))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(fst(fst(x0, from(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(fst(fst(x0, len(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(fst(fst(x0, 0), x2)) -> c11(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(fst(fst(x0, s(z0)), x2)) -> c11(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(fst(fst(x0, nil), x2)) -> c11(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(fst(fst(from(z0), x1), x2)) -> c11(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(fst(fst(add(z0, z1), x1), x2)) -> c11(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(fst(fst(len(z0), x1), x2)) -> c11(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(fst(fst(0, x1), x2)) -> c11(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(fst(fst(s(z0), x1), x2)) -> c11(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(fst(fst(nil, x1), x2)) -> c11(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c11(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(fst(fst(x0, x1), 0)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), s(z0))) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), nil)) -> c11(MARK(fst(x0, x1))) MARK(fst(fst(x0, x1), x2)) -> c11(MARK(fst(x0, x1))) MARK(fst(from(fst(z0, z1)), x1)) -> c11(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(fst(from(from(z0)), x1)) -> c11(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(fst(from(add(z0, z1)), x1)) -> c11(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(fst(from(len(z0)), x1)) -> c11(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(fst(from(0), x1)) -> c11(A__FST(a__from(0), mark(x1)), MARK(from(0))) MARK(fst(from(s(z0)), x1)) -> c11(A__FST(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(fst(from(nil), x1)) -> c11(A__FST(a__from(nil), mark(x1)), MARK(from(nil))) MARK(fst(from(cons(z0, z1)), x1)) -> c11(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(fst(from(x0), x1)) -> c11(MARK(from(x0))) MARK(fst(from(x0), 0)) -> c11(MARK(from(x0))) MARK(fst(from(x0), s(z0))) -> c11(MARK(from(x0))) MARK(fst(from(x0), nil)) -> c11(MARK(from(x0))) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(fst(add(x0, from(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(fst(add(x0, add(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(fst(add(x0, len(z0)), x2)) -> c11(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(fst(add(x0, 0), x2)) -> c11(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(fst(add(x0, s(z0)), x2)) -> c11(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(fst(add(x0, nil), x2)) -> c11(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c11(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(fst(add(fst(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(fst(add(from(z0), x1), x2)) -> c11(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(fst(add(add(z0, z1), x1), x2)) -> c11(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(fst(add(len(z0), x1), x2)) -> c11(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(fst(add(0, x1), x2)) -> c11(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(fst(add(s(z0), x1), x2)) -> c11(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(fst(add(nil, x1), x2)) -> c11(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(fst(add(cons(z0, z1), x1), x2)) -> c11(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(fst(add(x0, x1), 0)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), s(z0))) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), nil)) -> c11(MARK(add(x0, x1))) MARK(fst(add(x0, x1), x2)) -> c11(MARK(add(x0, x1))) MARK(fst(len(fst(z0, z1)), x1)) -> c11(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(fst(len(from(z0)), x1)) -> c11(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(fst(len(add(z0, z1)), x1)) -> c11(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(fst(len(len(z0)), x1)) -> c11(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(fst(len(0), x1)) -> c11(A__FST(a__len(0), mark(x1)), MARK(len(0))) MARK(fst(len(s(z0)), x1)) -> c11(A__FST(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(fst(len(nil), x1)) -> c11(A__FST(a__len(nil), mark(x1)), MARK(len(nil))) MARK(fst(len(cons(z0, z1)), x1)) -> c11(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(fst(len(x0), x1)) -> c11(MARK(len(x0))) MARK(fst(len(x0), 0)) -> c11(MARK(len(x0))) MARK(fst(len(x0), s(z0))) -> c11(MARK(len(x0))) MARK(fst(len(x0), nil)) -> c11(MARK(len(x0))) MARK(fst(x0, fst(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(fst(x0, fst(x1, from(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(fst(x0, fst(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(fst(x0, fst(x1, len(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(fst(x0, fst(x1, 0))) -> c12(A__FST(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(fst(x0, fst(x1, s(z0)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(fst(x0, fst(x1, nil))) -> c12(A__FST(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(fst(x0, fst(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(fst(x0, fst(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(fst(x0, fst(from(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(fst(x0, fst(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(fst(x0, fst(len(z0), x2))) -> c12(A__FST(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(fst(x0, fst(0, x2))) -> c12(A__FST(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(fst(x0, fst(s(z0), x2))) -> c12(A__FST(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(fst(x0, fst(nil, x2))) -> c12(A__FST(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(fst(x0, fst(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), fst(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(from(z0), fst(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(add(z0, z1), fst(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(len(z0), fst(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(s(z0), fst(x1, x2))) -> c12(A__FST(s(z0), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(fst(x0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(0, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(nil, fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(cons(z0, z1), fst(x1, x2))) -> c12(MARK(fst(x1, x2))) MARK(fst(x0, from(x1))) -> c12(A__FST(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(fst(x0, from(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(fst(x0, from(from(z0)))) -> c12(A__FST(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(fst(x0, from(add(z0, z1)))) -> c12(A__FST(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(fst(x0, from(len(z0)))) -> c12(A__FST(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(fst(x0, from(0))) -> c12(A__FST(mark(x0), a__from(0)), MARK(from(0))) MARK(fst(x0, from(s(z0)))) -> c12(A__FST(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(fst(x0, from(nil))) -> c12(A__FST(mark(x0), a__from(nil)), MARK(from(nil))) MARK(fst(x0, from(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(fst(fst(z0, z1), from(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(from(z0), from(x1))) -> c12(A__FST(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(add(z0, z1), from(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(len(z0), from(x1))) -> c12(A__FST(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(fst(s(z0), from(x1))) -> c12(A__FST(s(z0), a__from(mark(x1))), MARK(from(x1))) MARK(fst(x0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(0, from(x1))) -> c12(MARK(from(x1))) MARK(fst(nil, from(x1))) -> c12(MARK(from(x1))) MARK(fst(cons(z0, z1), from(x1))) -> c12(MARK(from(x1))) MARK(fst(x0, add(x1, fst(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(fst(x0, add(x1, from(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(fst(x0, add(x1, add(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(fst(x0, add(x1, len(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(fst(x0, add(x1, 0))) -> c12(A__FST(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(fst(x0, add(x1, s(z0)))) -> c12(A__FST(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(fst(x0, add(x1, nil))) -> c12(A__FST(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(fst(x0, add(x1, cons(z0, z1)))) -> c12(A__FST(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(fst(x0, add(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(fst(x0, add(from(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(fst(x0, add(add(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(fst(x0, add(len(z0), x2))) -> c12(A__FST(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(fst(x0, add(0, x2))) -> c12(A__FST(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(fst(x0, add(s(z0), x2))) -> c12(A__FST(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(fst(x0, add(nil, x2))) -> c12(A__FST(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(fst(x0, add(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), add(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(from(z0), add(x1, x2))) -> c12(A__FST(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(add(z0, z1), add(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(len(z0), add(x1, x2))) -> c12(A__FST(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(s(z0), add(x1, x2))) -> c12(A__FST(s(z0), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(fst(x0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(0, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(nil, add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(cons(z0, z1), add(x1, x2))) -> c12(MARK(add(x1, x2))) MARK(fst(x0, len(fst(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(fst(x0, len(from(z0)))) -> c12(A__FST(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(fst(x0, len(add(z0, z1)))) -> c12(A__FST(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(fst(x0, len(len(z0)))) -> c12(A__FST(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(fst(x0, len(0))) -> c12(A__FST(mark(x0), a__len(0)), MARK(len(0))) MARK(fst(x0, len(s(z0)))) -> c12(A__FST(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(fst(x0, len(nil))) -> c12(A__FST(mark(x0), a__len(nil)), MARK(len(nil))) MARK(fst(x0, len(cons(z0, z1)))) -> c12(A__FST(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(fst(fst(z0, z1), len(x1))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(from(z0), len(x1))) -> c12(A__FST(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(add(z0, z1), len(x1))) -> c12(A__FST(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(len(z0), len(x1))) -> c12(A__FST(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(fst(s(z0), len(x1))) -> c12(A__FST(s(z0), a__len(mark(x1))), MARK(len(x1))) MARK(fst(x0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(0, len(x1))) -> c12(MARK(len(x1))) MARK(fst(nil, len(x1))) -> c12(MARK(len(x1))) MARK(fst(cons(z0, z1), len(x1))) -> c12(MARK(len(x1))) MARK(fst(x0, cons(fst(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(fst(x0, cons(from(z0), x2))) -> c12(A__FST(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(fst(x0, cons(add(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(fst(x0, cons(len(z0), x2))) -> c12(A__FST(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(fst(x0, cons(0, x2))) -> c12(A__FST(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(fst(x0, cons(s(z0), x2))) -> c12(A__FST(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(fst(x0, cons(nil, x2))) -> c12(A__FST(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(fst(x0, cons(cons(z0, z1), x2))) -> c12(A__FST(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(fst(fst(z0, z1), cons(x1, x2))) -> c12(A__FST(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(from(z0), cons(x1, x2))) -> c12(A__FST(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(add(z0, z1), cons(x1, x2))) -> c12(A__FST(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(len(z0), cons(x1, x2))) -> c12(A__FST(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(s(z0), cons(x1, x2))) -> c12(A__FST(s(z0), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(fst(x0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(0, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(nil, cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(cons(z0, z1), cons(x1, x2))) -> c12(MARK(cons(x1, x2))) MARK(fst(fst(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, from(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, add(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, len(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(fst(x0, 0), x2)) -> c12(A__FST(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(fst(x0, s(z0)), x2)) -> c12(A__FST(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, nil), x2)) -> c12(A__FST(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(fst(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(fst(fst(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(from(z0), x1), x2)) -> c12(A__FST(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(add(z0, z1), x1), x2)) -> c12(A__FST(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(len(z0), x1), x2)) -> c12(A__FST(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(0, x1), x2)) -> c12(A__FST(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(s(z0), x1), x2)) -> c12(A__FST(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(nil, x1), x2)) -> c12(A__FST(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(cons(z0, z1), x1), x2)) -> c12(A__FST(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(fst(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(from(fst(z0, z1)), x1)) -> c12(A__FST(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(from(z0)), x1)) -> c12(A__FST(a__from(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(add(z0, z1)), x1)) -> c12(A__FST(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(from(len(z0)), x1)) -> c12(A__FST(a__from(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(from(0), x1)) -> c12(A__FST(a__from(0), mark(x1)), MARK(x1)) MARK(fst(from(s(z0)), x1)) -> c12(A__FST(a__from(s(z0)), mark(x1)), MARK(x1)) MARK(fst(from(nil), x1)) -> c12(A__FST(a__from(nil), mark(x1)), MARK(x1)) MARK(fst(from(cons(z0, z1)), x1)) -> c12(A__FST(a__from(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(from(x0), x1)) -> c12(MARK(x1)) MARK(fst(add(x0, fst(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, from(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, add(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(fst(add(x0, len(z0)), x2)) -> c12(A__FST(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(fst(add(x0, 0), x2)) -> c12(A__FST(a__add(mark(x0), 0), mark(x2)), MARK(x2)) MARK(fst(add(x0, s(z0)), x2)) -> c12(A__FST(a__add(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(fst(add(x0, nil), x2)) -> c12(A__FST(a__add(mark(x0), nil), mark(x2)), MARK(x2)) MARK(fst(add(x0, cons(z0, z1)), x2)) -> c12(A__FST(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(fst(add(fst(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(from(z0), x1), x2)) -> c12(A__FST(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(add(z0, z1), x1), x2)) -> c12(A__FST(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(len(z0), x1), x2)) -> c12(A__FST(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(0, x1), x2)) -> c12(A__FST(a__add(0, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(s(z0), x1), x2)) -> c12(A__FST(a__add(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(nil, x1), x2)) -> c12(A__FST(a__add(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(cons(z0, z1), x1), x2)) -> c12(A__FST(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(fst(add(x0, x1), x2)) -> c12(MARK(x2)) MARK(fst(len(fst(z0, z1)), x1)) -> c12(A__FST(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(from(z0)), x1)) -> c12(A__FST(a__len(a__from(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(add(z0, z1)), x1)) -> c12(A__FST(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(x1)) MARK(fst(len(len(z0)), x1)) -> c12(A__FST(a__len(a__len(mark(z0))), mark(x1)), MARK(x1)) MARK(fst(len(0), x1)) -> c12(A__FST(a__len(0), mark(x1)), MARK(x1)) MARK(fst(len(s(z0)), x1)) -> c12(A__FST(a__len(s(z0)), mark(x1)), MARK(x1)) MARK(fst(len(nil), x1)) -> c12(A__FST(a__len(nil), mark(x1)), MARK(x1)) MARK(fst(len(cons(z0, z1)), x1)) -> c12(A__FST(a__len(cons(mark(z0), z1)), mark(x1)), MARK(x1)) MARK(fst(len(x0), x1)) -> c12(MARK(x1)) MARK(add(x0, fst(x1, x2))) -> c14(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, fst(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, fst(x1, 0))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(x0)) MARK(add(x0, fst(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, fst(x1, nil))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(x0)) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, fst(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(from(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, fst(len(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, fst(0, x2))) -> c14(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(x0)) MARK(add(x0, fst(s(z0), x2))) -> c14(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, fst(nil, x2))) -> c14(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(x0)) MARK(add(x0, fst(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), fst(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), fst(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), fst(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, fst(x1, x2))) -> c14(A__ADD(0, a__fst(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(x0)) MARK(add(x0, from(x1))) -> c14(A__ADD(mark(x0), from(mark(x1))), MARK(x0)) MARK(add(x0, from(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(from(z0)))) -> c14(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, from(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, from(len(z0)))) -> c14(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, from(0))) -> c14(A__ADD(mark(x0), a__from(0)), MARK(x0)) MARK(add(x0, from(s(z0)))) -> c14(A__ADD(mark(x0), a__from(s(z0))), MARK(x0)) MARK(add(x0, from(nil))) -> c14(A__ADD(mark(x0), a__from(nil)), MARK(x0)) MARK(add(x0, from(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), from(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), from(x1))) -> c14(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), from(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), from(x1))) -> c14(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(len(z0))) MARK(add(0, from(x1))) -> c14(A__ADD(0, a__from(mark(x1)))) MARK(add(cons(z0, z1), from(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, add(x1, x2))) -> c14(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(x0)) MARK(add(x0, add(x1, fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, from(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, add(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, add(x1, len(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(x0)) MARK(add(x0, add(x1, 0))) -> c14(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(x0)) MARK(add(x0, add(x1, s(z0)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(x0)) MARK(add(x0, add(x1, nil))) -> c14(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(x0)) MARK(add(x0, add(x1, cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(x0)) MARK(add(x0, add(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(from(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(x0)) MARK(add(x0, add(len(z0), x2))) -> c14(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(x0)) MARK(add(x0, add(0, x2))) -> c14(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(x0)) MARK(add(x0, add(s(z0), x2))) -> c14(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(x0)) MARK(add(x0, add(nil, x2))) -> c14(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(x0)) MARK(add(x0, add(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(x0)) MARK(add(fst(z0, z1), add(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(fst(z0, z1))) MARK(add(from(z0), add(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(from(z0))) MARK(add(add(z0, z1), add(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(z0, z1))) MARK(add(len(z0), add(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(len(z0))) MARK(add(0, add(x1, x2))) -> c14(A__ADD(0, a__add(mark(x1), mark(x2)))) MARK(add(cons(z0, z1), add(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(x0, len(x1))) -> c14(A__ADD(mark(x0), len(mark(x1))), MARK(x0)) MARK(add(x0, len(fst(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(from(z0)))) -> c14(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(x0)) MARK(add(x0, len(add(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(x0)) MARK(add(x0, len(len(z0)))) -> c14(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(x0)) MARK(add(x0, len(0))) -> c14(A__ADD(mark(x0), a__len(0)), MARK(x0)) MARK(add(x0, len(s(z0)))) -> c14(A__ADD(mark(x0), a__len(s(z0))), MARK(x0)) MARK(add(x0, len(nil))) -> c14(A__ADD(mark(x0), a__len(nil)), MARK(x0)) MARK(add(x0, len(cons(z0, z1)))) -> c14(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(x0)) MARK(add(fst(z0, z1), len(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(fst(z0, z1))) MARK(add(from(z0), len(x1))) -> c14(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(from(z0))) MARK(add(add(z0, z1), len(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(add(z0, z1))) MARK(add(len(z0), len(x1))) -> c14(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(z0))) MARK(add(0, len(x1))) -> c14(A__ADD(0, a__len(mark(x1)))) MARK(add(cons(z0, z1), len(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), 0)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), 0), MARK(fst(z0, z1))) MARK(add(from(z0), 0)) -> c14(A__ADD(a__from(mark(z0)), 0), MARK(from(z0))) MARK(add(add(z0, z1), 0)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), 0), MARK(add(z0, z1))) MARK(add(len(z0), 0)) -> c14(A__ADD(a__len(mark(z0)), 0), MARK(len(z0))) MARK(add(0, 0)) -> c14(A__ADD(0, 0)) MARK(add(cons(z0, z1), 0)) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), s(x1))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), s(x1)), MARK(fst(z0, z1))) MARK(add(from(z0), s(x1))) -> c14(A__ADD(a__from(mark(z0)), s(x1)), MARK(from(z0))) MARK(add(add(z0, z1), s(x1))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), s(x1)), MARK(add(z0, z1))) MARK(add(len(z0), s(x1))) -> c14(A__ADD(a__len(mark(z0)), s(x1)), MARK(len(z0))) MARK(add(0, s(x1))) -> c14(A__ADD(0, s(x1))) MARK(add(cons(z0, z1), s(x1))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(z0, z1), nil)) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), nil), MARK(fst(z0, z1))) MARK(add(from(z0), nil)) -> c14(A__ADD(a__from(mark(z0)), nil), MARK(from(z0))) MARK(add(add(z0, z1), nil)) -> c14(A__ADD(a__add(mark(z0), mark(z1)), nil), MARK(add(z0, z1))) MARK(add(len(z0), nil)) -> c14(A__ADD(a__len(mark(z0)), nil), MARK(len(z0))) MARK(add(0, nil)) -> c14(A__ADD(0, nil)) MARK(add(cons(z0, z1), nil)) -> c14(MARK(cons(z0, z1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(from(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(add(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(x0)) MARK(add(x0, cons(len(z0), x2))) -> c14(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(x0)) MARK(add(x0, cons(0, x2))) -> c14(A__ADD(mark(x0), cons(0, x2)), MARK(x0)) MARK(add(x0, cons(s(z0), x2))) -> c14(A__ADD(mark(x0), cons(s(z0), x2)), MARK(x0)) MARK(add(x0, cons(nil, x2))) -> c14(A__ADD(mark(x0), cons(nil, x2)), MARK(x0)) MARK(add(x0, cons(cons(z0, z1), x2))) -> c14(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(x0)) MARK(add(fst(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(fst(z0, z1))) MARK(add(from(z0), cons(x1, x2))) -> c14(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(from(z0))) MARK(add(add(z0, z1), cons(x1, x2))) -> c14(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(add(z0, z1))) MARK(add(len(z0), cons(x1, x2))) -> c14(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(len(z0))) MARK(add(0, cons(x1, x2))) -> c14(A__ADD(0, cons(mark(x1), x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c14(MARK(cons(z0, z1))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, fst(z0, z1)))) MARK(add(fst(x0, from(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(fst(x0, from(z0)))) MARK(add(fst(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(fst(x0, add(z0, z1)))) MARK(add(fst(x0, len(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(fst(x0, len(z0)))) MARK(add(fst(x0, 0), x2)) -> c14(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(fst(x0, 0))) MARK(add(fst(x0, s(z0)), x2)) -> c14(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(fst(x0, s(z0)))) MARK(add(fst(x0, nil), x2)) -> c14(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(fst(x0, nil))) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(fst(x0, cons(z0, z1)))) MARK(add(fst(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(fst(z0, z1), x1))) MARK(add(fst(from(z0), x1), x2)) -> c14(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(fst(from(z0), x1))) MARK(add(fst(add(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(fst(add(z0, z1), x1))) MARK(add(fst(len(z0), x1), x2)) -> c14(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(fst(len(z0), x1))) MARK(add(fst(0, x1), x2)) -> c14(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(fst(0, x1))) MARK(add(fst(s(z0), x1), x2)) -> c14(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(fst(s(z0), x1))) MARK(add(fst(nil, x1), x2)) -> c14(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(fst(nil, x1))) MARK(add(fst(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(fst(cons(z0, z1), x1))) MARK(add(fst(x0, x1), x2)) -> c14(MARK(fst(x0, x1))) MARK(add(from(fst(z0, z1)), x1)) -> c14(A__ADD(a__from(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(from(fst(z0, z1)))) MARK(add(from(from(z0)), x1)) -> c14(A__ADD(a__from(a__from(mark(z0))), mark(x1)), MARK(from(from(z0)))) MARK(add(from(add(z0, z1)), x1)) -> c14(A__ADD(a__from(a__add(mark(z0), mark(z1))), mark(x1)), MARK(from(add(z0, z1)))) MARK(add(from(len(z0)), x1)) -> c14(A__ADD(a__from(a__len(mark(z0))), mark(x1)), MARK(from(len(z0)))) MARK(add(from(0), x1)) -> c14(A__ADD(a__from(0), mark(x1)), MARK(from(0))) MARK(add(from(s(z0)), x1)) -> c14(A__ADD(a__from(s(z0)), mark(x1)), MARK(from(s(z0)))) MARK(add(from(nil), x1)) -> c14(A__ADD(a__from(nil), mark(x1)), MARK(from(nil))) MARK(add(from(cons(z0, z1)), x1)) -> c14(A__ADD(a__from(cons(mark(z0), z1)), mark(x1)), MARK(from(cons(z0, z1)))) MARK(add(from(x0), x1)) -> c14(MARK(from(x0))) MARK(add(add(x0, fst(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, fst(z0, z1)))) MARK(add(add(x0, from(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__from(mark(z0))), mark(x2)), MARK(add(x0, from(z0)))) MARK(add(add(x0, add(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(add(x0, add(z0, z1)))) MARK(add(add(x0, len(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), a__len(mark(z0))), mark(x2)), MARK(add(x0, len(z0)))) MARK(add(add(x0, 0), x2)) -> c14(A__ADD(a__add(mark(x0), 0), mark(x2)), MARK(add(x0, 0))) MARK(add(add(x0, s(z0)), x2)) -> c14(A__ADD(a__add(mark(x0), s(z0)), mark(x2)), MARK(add(x0, s(z0)))) MARK(add(add(x0, nil), x2)) -> c14(A__ADD(a__add(mark(x0), nil), mark(x2)), MARK(add(x0, nil))) MARK(add(add(x0, cons(z0, z1)), x2)) -> c14(A__ADD(a__add(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(add(x0, cons(z0, z1)))) MARK(add(add(fst(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(fst(z0, z1), x1))) MARK(add(add(from(z0), x1), x2)) -> c14(A__ADD(a__add(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(add(from(z0), x1))) MARK(add(add(add(z0, z1), x1), x2)) -> c14(A__ADD(a__add(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(add(add(z0, z1), x1))) MARK(add(add(len(z0), x1), x2)) -> c14(A__ADD(a__add(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(add(len(z0), x1))) MARK(add(add(0, x1), x2)) -> c14(A__ADD(a__add(0, mark(x1)), mark(x2)), MARK(add(0, x1))) MARK(add(add(s(z0), x1), x2)) -> c14(A__ADD(a__add(s(z0), mark(x1)), mark(x2)), MARK(add(s(z0), x1))) MARK(add(add(nil, x1), x2)) -> c14(A__ADD(a__add(nil, mark(x1)), mark(x2)), MARK(add(nil, x1))) MARK(add(add(cons(z0, z1), x1), x2)) -> c14(A__ADD(a__add(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(add(cons(z0, z1), x1))) MARK(add(add(x0, x1), x2)) -> c14(MARK(add(x0, x1))) MARK(add(len(fst(z0, z1)), x1)) -> c14(A__ADD(a__len(a__fst(mark(z0), mark(z1))), mark(x1)), MARK(len(fst(z0, z1)))) MARK(add(len(from(z0)), x1)) -> c14(A__ADD(a__len(a__from(mark(z0))), mark(x1)), MARK(len(from(z0)))) MARK(add(len(add(z0, z1)), x1)) -> c14(A__ADD(a__len(a__add(mark(z0), mark(z1))), mark(x1)), MARK(len(add(z0, z1)))) MARK(add(len(len(z0)), x1)) -> c14(A__ADD(a__len(a__len(mark(z0))), mark(x1)), MARK(len(len(z0)))) MARK(add(len(0), x1)) -> c14(A__ADD(a__len(0), mark(x1)), MARK(len(0))) MARK(add(len(s(z0)), x1)) -> c14(A__ADD(a__len(s(z0)), mark(x1)), MARK(len(s(z0)))) MARK(add(len(nil), x1)) -> c14(A__ADD(a__len(nil), mark(x1)), MARK(len(nil))) MARK(add(len(cons(z0, z1)), x1)) -> c14(A__ADD(a__len(cons(mark(z0), z1)), mark(x1)), MARK(len(cons(z0, z1)))) MARK(add(len(x0), x1)) -> c14(MARK(len(x0))) MARK(add(x0, fst(x1, x2))) -> c15(A__ADD(mark(x0), fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(x0, fst(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(fst(x1, fst(z0, z1)))) MARK(add(x0, fst(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__from(mark(z0)))), MARK(fst(x1, from(z0)))) MARK(add(x0, fst(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__add(mark(z0), mark(z1)))), MARK(fst(x1, add(z0, z1)))) MARK(add(x0, fst(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), a__len(mark(z0)))), MARK(fst(x1, len(z0)))) MARK(add(x0, fst(x1, 0))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), 0)), MARK(fst(x1, 0))) MARK(add(x0, fst(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), s(z0))), MARK(fst(x1, s(z0)))) MARK(add(x0, fst(x1, nil))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), nil)), MARK(fst(x1, nil))) MARK(add(x0, fst(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__fst(mark(x1), cons(mark(z0), z1))), MARK(fst(x1, cons(z0, z1)))) MARK(add(x0, fst(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(fst(fst(z0, z1), x2))) MARK(add(x0, fst(from(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__from(mark(z0)), mark(x2))), MARK(fst(from(z0), x2))) MARK(add(x0, fst(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(a__add(mark(z0), mark(z1)), mark(x2))), MARK(fst(add(z0, z1), x2))) MARK(add(x0, fst(len(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(a__len(mark(z0)), mark(x2))), MARK(fst(len(z0), x2))) MARK(add(x0, fst(0, x2))) -> c15(A__ADD(mark(x0), a__fst(0, mark(x2))), MARK(fst(0, x2))) MARK(add(x0, fst(s(z0), x2))) -> c15(A__ADD(mark(x0), a__fst(s(z0), mark(x2))), MARK(fst(s(z0), x2))) MARK(add(x0, fst(nil, x2))) -> c15(A__ADD(mark(x0), a__fst(nil, mark(x2))), MARK(fst(nil, x2))) MARK(add(x0, fst(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__fst(cons(mark(z0), z1), mark(x2))), MARK(fst(cons(z0, z1), x2))) MARK(add(fst(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(from(z0), fst(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(add(z0, z1), fst(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(len(z0), fst(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(0, fst(x1, x2))) -> c15(A__ADD(0, a__fst(mark(x1), mark(x2))), MARK(fst(x1, x2))) MARK(add(s(z0), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(nil, fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(cons(z0, z1), fst(x1, x2))) -> c15(MARK(fst(x1, x2))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), cons(mark(mark(x1)), from(s(mark(x1))))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(A__ADD(mark(x0), from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__fst(mark(z0), mark(z1)))), MARK(from(fst(z0, z1)))) MARK(add(x0, from(from(z0)))) -> c15(A__ADD(mark(x0), a__from(a__from(mark(z0)))), MARK(from(from(z0)))) MARK(add(x0, from(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(a__add(mark(z0), mark(z1)))), MARK(from(add(z0, z1)))) MARK(add(x0, from(len(z0)))) -> c15(A__ADD(mark(x0), a__from(a__len(mark(z0)))), MARK(from(len(z0)))) MARK(add(x0, from(0))) -> c15(A__ADD(mark(x0), a__from(0)), MARK(from(0))) MARK(add(x0, from(s(z0)))) -> c15(A__ADD(mark(x0), a__from(s(z0))), MARK(from(s(z0)))) MARK(add(x0, from(nil))) -> c15(A__ADD(mark(x0), a__from(nil)), MARK(from(nil))) MARK(add(x0, from(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__from(cons(mark(z0), z1))), MARK(from(cons(z0, z1)))) MARK(add(fst(z0, z1), from(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(from(z0), from(x1))) -> c15(A__ADD(a__from(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(add(z0, z1), from(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__from(mark(x1))), MARK(from(x1))) MARK(add(len(z0), from(x1))) -> c15(A__ADD(a__len(mark(z0)), a__from(mark(x1))), MARK(from(x1))) MARK(add(0, from(x1))) -> c15(A__ADD(0, a__from(mark(x1))), MARK(from(x1))) MARK(add(x0, from(x1))) -> c15(MARK(from(x1))) MARK(add(s(z0), from(x1))) -> c15(MARK(from(x1))) MARK(add(nil, from(x1))) -> c15(MARK(from(x1))) MARK(add(cons(z0, z1), from(x1))) -> c15(MARK(from(x1))) MARK(add(x0, add(x1, x2))) -> c15(A__ADD(mark(x0), add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(x0, add(x1, fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__fst(mark(z0), mark(z1)))), MARK(add(x1, fst(z0, z1)))) MARK(add(x0, add(x1, from(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__from(mark(z0)))), MARK(add(x1, from(z0)))) MARK(add(x0, add(x1, add(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__add(mark(z0), mark(z1)))), MARK(add(x1, add(z0, z1)))) MARK(add(x0, add(x1, len(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), a__len(mark(z0)))), MARK(add(x1, len(z0)))) MARK(add(x0, add(x1, 0))) -> c15(A__ADD(mark(x0), a__add(mark(x1), 0)), MARK(add(x1, 0))) MARK(add(x0, add(x1, s(z0)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), s(z0))), MARK(add(x1, s(z0)))) MARK(add(x0, add(x1, nil))) -> c15(A__ADD(mark(x0), a__add(mark(x1), nil)), MARK(add(x1, nil))) MARK(add(x0, add(x1, cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__add(mark(x1), cons(mark(z0), z1))), MARK(add(x1, cons(z0, z1)))) MARK(add(x0, add(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__fst(mark(z0), mark(z1)), mark(x2))), MARK(add(fst(z0, z1), x2))) MARK(add(x0, add(from(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__from(mark(z0)), mark(x2))), MARK(add(from(z0), x2))) MARK(add(x0, add(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(a__add(mark(z0), mark(z1)), mark(x2))), MARK(add(add(z0, z1), x2))) MARK(add(x0, add(len(z0), x2))) -> c15(A__ADD(mark(x0), a__add(a__len(mark(z0)), mark(x2))), MARK(add(len(z0), x2))) MARK(add(x0, add(0, x2))) -> c15(A__ADD(mark(x0), a__add(0, mark(x2))), MARK(add(0, x2))) MARK(add(x0, add(s(z0), x2))) -> c15(A__ADD(mark(x0), a__add(s(z0), mark(x2))), MARK(add(s(z0), x2))) MARK(add(x0, add(nil, x2))) -> c15(A__ADD(mark(x0), a__add(nil, mark(x2))), MARK(add(nil, x2))) MARK(add(x0, add(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), a__add(cons(mark(z0), z1), mark(x2))), MARK(add(cons(z0, z1), x2))) MARK(add(fst(z0, z1), add(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(from(z0), add(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(add(z0, z1), add(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(len(z0), add(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(0, add(x1, x2))) -> c15(A__ADD(0, a__add(mark(x1), mark(x2))), MARK(add(x1, x2))) MARK(add(s(z0), add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(nil, add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(cons(z0, z1), add(x1, x2))) -> c15(MARK(add(x1, x2))) MARK(add(x0, len(x1))) -> c15(A__ADD(mark(x0), len(mark(x1))), MARK(len(x1))) MARK(add(x0, len(fst(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(a__fst(mark(z0), mark(z1)))), MARK(len(fst(z0, z1)))) MARK(add(x0, len(from(z0)))) -> c15(A__ADD(mark(x0), a__len(a__from(mark(z0)))), MARK(len(from(z0)))) MARK(add(x0, len(add(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(a__add(mark(z0), mark(z1)))), MARK(len(add(z0, z1)))) MARK(add(x0, len(len(z0)))) -> c15(A__ADD(mark(x0), a__len(a__len(mark(z0)))), MARK(len(len(z0)))) MARK(add(x0, len(0))) -> c15(A__ADD(mark(x0), a__len(0)), MARK(len(0))) MARK(add(x0, len(s(z0)))) -> c15(A__ADD(mark(x0), a__len(s(z0))), MARK(len(s(z0)))) MARK(add(x0, len(nil))) -> c15(A__ADD(mark(x0), a__len(nil)), MARK(len(nil))) MARK(add(x0, len(cons(z0, z1)))) -> c15(A__ADD(mark(x0), a__len(cons(mark(z0), z1))), MARK(len(cons(z0, z1)))) MARK(add(fst(z0, z1), len(x1))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(add(from(z0), len(x1))) -> c15(A__ADD(a__from(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(add(add(z0, z1), len(x1))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), a__len(mark(x1))), MARK(len(x1))) MARK(add(len(z0), len(x1))) -> c15(A__ADD(a__len(mark(z0)), a__len(mark(x1))), MARK(len(x1))) MARK(add(0, len(x1))) -> c15(A__ADD(0, a__len(mark(x1))), MARK(len(x1))) MARK(add(x0, len(x1))) -> c15(MARK(len(x1))) MARK(add(s(z0), len(x1))) -> c15(MARK(len(x1))) MARK(add(nil, len(x1))) -> c15(MARK(len(x1))) MARK(add(cons(z0, z1), len(x1))) -> c15(MARK(len(x1))) MARK(add(x0, cons(fst(z0, z1), x2))) -> c15(A__ADD(mark(x0), cons(a__fst(mark(z0), mark(z1)), x2)), MARK(cons(fst(z0, z1), x2))) MARK(add(x0, cons(from(z0), x2))) -> c15(A__ADD(mark(x0), cons(a__from(mark(z0)), x2)), MARK(cons(from(z0), x2))) MARK(add(x0, cons(add(z0, z1), x2))) -> c15(A__ADD(mark(x0), cons(a__add(mark(z0), mark(z1)), x2)), MARK(cons(add(z0, z1), x2))) MARK(add(x0, cons(len(z0), x2))) -> c15(A__ADD(mark(x0), cons(a__len(mark(z0)), x2)), MARK(cons(len(z0), x2))) MARK(add(x0, cons(0, x2))) -> c15(A__ADD(mark(x0), cons(0, x2)), MARK(cons(0, x2))) MARK(add(x0, cons(s(z0), x2))) -> c15(A__ADD(mark(x0), cons(s(z0), x2)), MARK(cons(s(z0), x2))) MARK(add(x0, cons(nil, x2))) -> c15(A__ADD(mark(x0), cons(nil, x2)), MARK(cons(nil, x2))) MARK(add(x0, cons(cons(z0, z1), x2))) -> c15(A__ADD(mark(x0), cons(cons(mark(z0), z1), x2)), MARK(cons(cons(z0, z1), x2))) MARK(add(fst(z0, z1), cons(x1, x2))) -> c15(A__ADD(a__fst(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(from(z0), cons(x1, x2))) -> c15(A__ADD(a__from(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(add(z0, z1), cons(x1, x2))) -> c15(A__ADD(a__add(mark(z0), mark(z1)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(len(z0), cons(x1, x2))) -> c15(A__ADD(a__len(mark(z0)), cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(0, cons(x1, x2))) -> c15(A__ADD(0, cons(mark(x1), x2)), MARK(cons(x1, x2))) MARK(add(x0, cons(x1, x2))) -> c15(MARK(cons(x1, x2))) MARK(add(s(z0), cons(x1, x2))) -> c15(MARK(cons(x1, x2))) MARK(add(nil, cons(x1, x2))) -> c15(MARK(cons(x1, x2))) MARK(add(cons(z0, z1), cons(x1, x2))) -> c15(MARK(cons(x1, x2))) MARK(add(fst(x0, fst(z0, z1)), x2)) -> c15(A__ADD(a__fst(mark(x0), a__fst(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(add(fst(x0, from(z0)), x2)) -> c15(A__ADD(a__fst(mark(x0), a__from(mark(z0))), mark(x2)), MARK(x2)) MARK(add(fst(x0, add(z0, z1)), x2)) -> c15(A__ADD(a__fst(mark(x0), a__add(mark(z0), mark(z1))), mark(x2)), MARK(x2)) MARK(add(fst(x0, len(z0)), x2)) -> c15(A__ADD(a__fst(mark(x0), a__len(mark(z0))), mark(x2)), MARK(x2)) MARK(add(fst(x0, 0), x2)) -> c15(A__ADD(a__fst(mark(x0), 0), mark(x2)), MARK(x2)) MARK(add(fst(x0, s(z0)), x2)) -> c15(A__ADD(a__fst(mark(x0), s(z0)), mark(x2)), MARK(x2)) MARK(add(fst(x0, nil), x2)) -> c15(A__ADD(a__fst(mark(x0), nil), mark(x2)), MARK(x2)) MARK(add(fst(x0, cons(z0, z1)), x2)) -> c15(A__ADD(a__fst(mark(x0), cons(mark(z0), z1)), mark(x2)), MARK(x2)) MARK(add(fst(fst(z0, z1), x1), x2)) -> c15(A__ADD(a__fst(a__fst(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(from(z0), x1), x2)) -> c15(A__ADD(a__fst(a__from(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(add(z0, z1), x1), x2)) -> c15(A__ADD(a__fst(a__add(mark(z0), mark(z1)), mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(len(z0), x1), x2)) -> c15(A__ADD(a__fst(a__len(mark(z0)), mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(0, x1), x2)) -> c15(A__ADD(a__fst(0, mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(s(z0), x1), x2)) -> c15(A__ADD(a__fst(s(z0), mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(nil, x1), x2)) -> c15(A__ADD(a__fst(nil, mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(cons(z0, z1), x1), x2)) -> c15(A__ADD(a__fst(cons(mark(z0), z1), mark(x1)), mark(x2)), MARK(x2)) MARK(add(fst(x0, x1), 0)) -> c15(A__ADD(a__fst(mark(x0), mark(x1)), 0)) MARK(add(fst(x0, x1), s(z0))) -> c15(A__ADD(a__fst(mark(x0), mark(x1)), s(z0))) MARK(add(fst(x0, x1), nil)) -> c15(A__ADD(a__fst(mark(x0), mark(x1)), nil)) MARK(add(fst(x0, x1), x2)) -> c15(MARK(x2)) K tuples:none Defined Rule Symbols: a__fst_2, a__from_1, a__add_2, a__len_1, mark_1 Defined Pair Symbols: A__FST_2, A__FROM_1, A__ADD_2, MARK_1 Compound Symbols: c1_1, c3_1, c5_1, c13_2, c20_1, c16_1, c11_1, c12_1, c14_1, c15_2, c15_1, c11_2, c12_2, c14_2